概述
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。在平均状况下,排序n个元素要O(nlogn)次比较。在最坏状况下则需要O(n^2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他O(nlogn)算法更快,因为它的内部循环可以在大部分的架构上很有效率地被实现出来。
算法描述
1.先从元素序列中取一个数作为基准数。
2.将比这个基准数大的元素全放到它的右边,小于或者等于基准数的元素放到它的左边。这个称为分区(partition)操作。最终的结果就是元素序列分成了如下左右两个区间:
3.对左右区间递归的进行步骤1,2,直到各区间只有一个元素时结束递归操作,这时整个元素序列就已经完成排序了。
快速排序C/C++代码如下:
void Swap(int arr[], int i, int j)
{
int temp=arr[i];
arr[i] = arr