首页 > 代码库 > 归并排序
归并排序
归并排序是一种很稳定的排序算法,
function 归并排序($arr) { if (count($arr) <= 1) return $arr; $mid = floor(count($arr) / 2); $left = array_slice($arr, 0, $mid); $right = array_slice($arr, $mid); $left = $this->归并排序($left); $right = $this->归并排序($right); $data = $this->merge($left, $right); return $data; } public function merge($a, $b) { //merge函数将指定的两个有序数组(arr1arr2,)合并并且排序 //我们可以找到第三个数组,然后依次从两个数组的开始取数据哪个数据小就先取哪个的,然后删除掉刚刚取过///的数据 $arr = array(); while (!empty($a) && !empty($b)) { //这里不断的判断哪个值小,就将小的值给到arr,但是到最后肯定要剩下几个值, //不是剩下arrA里面的就是剩下arrB里面的而且这几个有序的值,肯定比arrC里面所有的值都大所以使用 $arr[] = $a[0] < $b[0] ? array_shift($a) : array_shift($b); } return array_merge($arr, $a, $b); }
归并排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。