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函数为具体排序算法实现主体:
/* 用递归实现,快速排序的核心 */
static void Quicksort( ElementType A[], int Left, int Right )
{
int i, j;
ElementType Pivot;
int

本文介绍了快速排序方法,通过分而治之的策略选择中间点进行元素划分,并提供了算法实现及完整示例代码。讨论了在数据规模较小时如何结合简单排序优化算法效率。
最低0.47元/天 解锁文章
523

被折叠的 条评论
为什么被折叠?



