PHP程序的数组快速排序原代码

时间:2021-04-16

以下是PHP数组快速排序原代码:

<?php
  /**
  * 快速排序
  */
  function quick_sort($array)
  {
  $len = count($array);
  if($len <= 1)
  {
  return $array;
  }
  $left_array = array();
  $right_array = array();
  $key = $array[0];
  for($i=1; $i<$len; $i++)
  {
  if($key < $array[$i])
  {
  $right_array[] = $array[$i];
  }else
  {
  $left_array[]=$array[$i];
  }
  $first_array = array_merge($left_array, array($key), $right_array);
  }
  return $first_array;
  }
  $just = array(49,38,97,76,13,27);
  for($j=0; $j<6;$j++)
  {
  static $array1 ;
  static $array;
  $array1 = quick_sort($just);
  $array = quick_sort($array1);
  }
  print_r($array);
  PHP,递归快排 function quick_sort($arr)
  {
  _quick_sort($arr, 0, (count($arr)-1));
  return $arr;
  }
  function _quick_sort(&$arr, $i, $j)
  {
  $pivot = $arr[$i];
  $_i = $i;
  $_j = $j;
  while($i<$j)
  {
  while($arr[$j]>=$pivot && $i<$j) $j--;
  if($i<$j)
  {
  $arr[$i] = $arr[$j];
  $i++;
  }
  while($arr[$i]<=$pivot && $i<$j) $i++;
  if($i<$j)
  {
  $arr[$j] = $arr[$i];
  $j--;
  }
  }
  $arr[$i]=$pivot;
  if($_i<$i-1)
  {
  _quick_sort($arr, $_i, $i-1);
  }
  if($_j>$i+1)
  {
  _quick_sort($arr, $i+1, $_j);
  }
  }

?>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章