快速排序是一种高效的排序算法,并基于分割数据的数组成更小的数组。一个大的数组被划分成两个数组,其中一个保持值比规定的值小的表示基于支点在其上的分区是由与另一个数组保存值大于支点的值。
快速排序分割数组,然后调用自身递归两次排序得到的两个子数组。该算法对大型数据集作为平均和最坏情况的复杂性相当有效率为O(nlogn),其中n是项目的数目。

伪代码
A : array of items procedure quickSort(left, right) if right-left <= 0 return else pivot = A[right] partition = partitionFunc(left, right, pivot) quickSort(left,partition-1) quickSort(partition+1,right) end if end procedure function partitionFunc(left, right, pivot) leftTutorialser = left -1 rightTutorialser = right while True do while A[++leftTutorialser] < pivot do //donothing end while while rightTutorialser > 0 && A[--rightTutorialser] > pivot do //donothing end while if leftTutorialser >= rightTutorialser break else swap leftTutorialser,rightTutorialser end if end while swap leftTutorialser,right return leftTutorialser end function procedure swap (num1, num2) temp = A[num1] A[num1] = A[num2] A[num2] = temp; end procedure
要查看C编程语言快速排序的实现,请点击这里
上一篇:
希尔排序实例程序(C程序)
下一篇:
快速排序实例程序(C语言)