归并排序

来源:互联网 发布:淘宝充错话费能退款吗 编辑:程序博客网 时间:2024/06/04 19:13
echo "<br/>------------归并排序--------???----------<br/>";function Merge(&$arr, $left, $mid, $right) {  $i = $left;  $j = $mid + 1;  $k = 0;  $temp = array();  while ($i <= $mid && $j <= $right)  {    if ($arr[$i] <= $arr[$j])       $temp[$k++] = $arr[$i++];    else      $temp[$k++] = $arr[$j++];  }  while ($i <= $mid)    $temp[$k++] = $arr[$i++];  while ($j <= $right)    $temp[$k++] = $arr[$j++];  for ($i = $left, $j = 0; $i <= $right; $i++, $j++)    $arr[$i] = $temp[$j];}/*left 数组arr的左下标right数组arr的右下标;MergeSort分开;Merge合并; */  function MergeSort(&$arr, $left, $right){  if ($left < $right)  {    $mid = floor(($left + $right) / 2);    MergeSort($arr, $left, $mid);    MergeSort($arr, $mid + 1, $right);    Merge($arr, $left, $mid, $right);  }}$arr=array(3,4,1,2,5);MergeSort($arr,0,4);var_dump($arr);

0 0
原创粉丝点击