php语法如何快速实现排序的非递归算法

  

如何利用php快速实现排序的非递归算法,下面编程教程网小编给大家详细介绍一下具体实现代码!

代码如下:

function quick_sort(&$arr) {
  $stack = new SplStack(); // 使用SplStack实现栈
  $stack->push(count($arr) - 1); // 将整个数组的下标压入栈
  $stack->push(0);
  while (!$stack->isEmpty()) {
    $left = $stack->pop();
    $right = $stack->pop();
    $pivotIndex = partition($arr, $left, $right);
    if ($left < $pivotIndex - 1) {
      $stack->push($pivotIndex - 1);
      $stack->push($left);
    }
    if ($pivotIndex + 1 < $right) {
      $stack->push($right);
      $stack->push($pivotIndex + 1);
    }
  }
}
以上是编程学习网小编为您介绍的“php语法如何快速实现排序的非递归算法”的全面内容,想了解更多关于 php入门 内容,请继续关注编程基础学习网。

相关文章