1、快速排序方法
采用分而治之的方法:从待排序元素随机找到一个,以它为中间点,将所有比它大的放在一边,所有比它小的放在另一边,然后每一边在执行和上面相同的步骤。选取中间点(pivot)很关键,如果碰到和pivot相同的元素则停下来交换。
如果数据规模较小:小规模数据的快速排序可能还没有简单排序快,所以可以在程序中设定一个cutoff(阈值),大于它用快速排序,小于它则用简单排序方法比如插入排序。简单排序算法的实现可以参考这篇文章:http://blog.youkuaiyun.com/tech_pro/article/details/78016096。
2、具体实现
2.1 算法实现
/* 定义快速排序 */
void Quick_Sort(ElementType A[],int N)
{
Quicksort( A, 0, N-1 );
}
Quicksort函数为具体排序算法实现主体:
/* 用递归实现