【发布时间】:2017-01-19 08:12:19
【问题描述】:
我在 Google 中看到一些代码实现了这样的快速排序算法。
static public void QuickSort_Recursive(int [] arr, int left, int right)
{
// For Recusrion
if(left < right)
{
int pivot = Partition(arr, left, right);
if(pivot > 1)
QuickSort_Recursive(arr, left, pivot - 1);
if(pivot + 1 < right)
QuickSort_Recursive(arr, pivot + 1, right);
}
}
我试图解决这个问题,我已经了解代码本身是如何工作的,但有一件事让我感到困惑。递归(上面的代码)如何工作。它是如何被终止的。我是递归函数的新手,我只知道它的基础。
有人可以直截了当地向我解释一下吗? :)
P.S:我知道分区部分,所以我没有包括它。
【问题讨论】:
-
检查 (pivot > 1) (应该是 (pivot - 1 > left) 和 (pivot + 1
标签: algorithm sorting quicksort