快速排序
快速排序是所有内部排序算法中平均性能最优的算法。
算法思想
C语言实现(递增)
int Partition(int* a, int left, int right){
int pivot = a[left];
while(left<right){
while(left<right&&a[right]<=pivot)right--;
a[left] = a[right];
while(left<right&&a[left]>=pivot)left++;
a[right] = a[left];
}
a[left] = pivot;
return left;
}
void QuickSort(int* a, int left, int right){
if(left<right){
int pivot_pos = Partition(a, left, right);
QuickSort(a, left, pivot_pos-1);
QuickSort(a, pivot_pos+1, right);
}
}时间复杂度
空间复杂度
稳定性
进一步优化算法
Last updated