快速排序算法

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

该方法的基本思想是:

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)

posted @ 2015-06-20 13:00  七彩木兰  阅读(274)  评论(0编辑  收藏  举报