php - 是否可以使快速排序函数对数组进行降序排序?

标签 php algorithm sorting quicksort

我得到了下面的 php 函数,想把它改成降序排序,谁能帮帮我:

function quickSort(&$numbers, $array_size,$level)
{
   q_sort($numbers, 0, $array_size - 1,$level);
}


function q_sort(&$numbers, $left, $right,$level)
{
   $l_hold = $left;
   $r_hold = $right;
   $pivot = $numbers[$left];


   while ($left < $right)
   {
      if ($level == 'RegID')
      {
         while (($numbers[$right]->RegID >= $pivot->RegID) && ($left < $right))
            $right--;
      }


      if ($left != $right)
      {
         $numbers[$left] = $numbers[$right];
         $left++;
      }

      if($level == 'RegID')
      {
         while (($numbers[$left]->RegID >= $pivot->RegID) && ($left < $right))
            $left++;
      }



      if ($left != $right)
      {
         $numbers[$right] = $numbers[$left];
         $right--;
      }
   }

   $numbers[$left] = $pivot;
   $pivot = $left;
   $left = $l_hold;
   $right = $r_hold;

   if ($left < $pivot)
      q_sort($numbers, $left, $pivot-1,$level);
   if ($right > $pivot)
      q_sort($numbers, $pivot+1, $right,$level);

}

最佳答案

简单:每当您比较元素时,将“>”更改为“<”,反之亦然。

这适用于所有排序算法和任何类型的排序:用任何表达式替换数组元素的任何比较,回答一个元素应该在排序数组中的另一个元素之前的问题。

关于php - 是否可以使快速排序函数对数组进行降序排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1011228/

相关文章:

php - 选择子菜单链接时,使父链接显示事件类

php mysql 控制帖子表单字段

sorting - 如何对 grep -c 获得的输出进行排序?

java - 大 O - 冒泡排序

php - 如何使用PHP CURL绕过跨域

PHPExcel 导出到 Codeigniter 循环数据数组中的 excel

java - 是否有任何 'tricks' 可以加速非常大的背包组合类型 prob 的采样?

java - 这两种算法中哪一种更有效?

algorithm - 集合的每个子集的最小和最大元素的或之和

sorting - cli C++ 对某个属性的对象列表进行排序