della0887 发表于 2018-12-13 07:15:56

PHP排序的几种方法

  // 快速排序
  function QuickSort($arr){
  $num = count($arr);
  $l = $r = 0;
  $left = $right = array();
  // 从索引的第二个开始遍历数组
  for ($i = 1;$i < $num; $i++) {
  // 如果值小于索引1
  if ($arr[$i] < $arr) {
  // 装入左索引数组(小于索引1的数据)
  $left[] = $arr[$i];
  $l++;
  } else {
  // 否则装入右索引中(大于索引1的数据)
  $right[] = $arr[$i];
  $r++; //
  }
  }
  // 如果左索引有值 则对左索引排序
  if($l > 1) {
  $left = QuickSort($left);
  }
  // 排序后的数组
  $new_arr = $left;
  // 将当前数组第一个放到最后
  $new_arr[] = $arr;
  // 如果又索引有值 则对右索引排序
  if ($r > 1) {
  $right = QuickSort($right);
  }
  // 根据右索引的长度再次增加数据
  for($i = 0;$i < $r; $i++) {
  $new_arr[] = $right[$i];
  }
  return $new_arr;
  }

页: [1]
查看完整版本: PHP排序的几种方法