码迷,mamicode.com
首页 > 编程语言 > 详细

快速排序算法

时间:2015-06-20 14:15:58      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

快速排序算法也是分治算法的一种

该方法的基本思想是:

1.先从数列中取出一个数作为基准数。

2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。

3.再对左右区间重复第二步,直到各区间只有一个数。

对挖坑填数进行总结

1.i =L; j = R; 将基准数挖出形成第一个坑a[i]。

2.j--由后向前找比它小的数,找到后挖出此数填前一个坑a[i]中。

3.i++由前向后找比它大的数,找到后也挖出此数填到前一个坑a[j]中。

4.再重复执行2,3二步,直到i==j,将基准数填入a[i]中。

照着这个总结很容易实现挖坑填数的代码:

 

时间复杂度:O(n*lgn)
最坏:O(n^2)
空间复杂度:O(n*lgn)

最快也只能达到O(nlgn)

快速排序算法

标签:

原文地址:http://www.cnblogs.com/cailingsunny/p/4590447.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!