-
先从后往前移动(high),因为每次将第一个元素作为枢轴,那么第一个元素的位置就被空了出来,理所应当的应该先从后面找到一个比当前枢轴小的元素移到该空处
-
high == low时,即找到了枢轴元素最终应该所在的位置。所以Partition函数中while里都要加上low<high条件
-
Qsort外层整体要有个if(low<high),是保证该子表长度>1,因为如果长度=1,则可以停止递归排序
-
只有比枢轴元素大或者小的时候,才移动。所以Partition函数中的while中的条件是>=或<=
-
T(n):
Qsort():O(log2n)
Partition():O(n)
故快排:O(nlog2n), 与初始状态有关系
-
S(n):平均O(logn) 最坏O(n)
-
不稳定