设为首页 加入收藏

TOP

算法基础(三)
2017-10-09 17:30:23 】 浏览:4955
Tags:算法 基础
__
== '__main__': 33 array = [8,4,1, 14, 6, 2, 3, 9,5, 13, 7,1, 8,10, 12] 34 print("-------排序前-------") 35 print(array) 36 quick_sort(array, 0, len(array)-1) 37 print("-------排序后-------") 38 print(array)

输出:

-------排序前-------
[8, 4, 1, 14, 6, 2, 3, 9, 5, 13, 7, 1, 8, 10, 12]
-------排序后-------
[1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10, 12, 13, 14]

22行那里如果不加=号,当排序64,77,64是会死循环,此时key=64, 最后的64与开始的64交换,开始的64与本最后的64交换…… 无穷无尽

直接插入排序复杂度: 

时间复杂度: 最好情况O(nlogn), 最坏情况O(n^2), 平均情况O(nlogn)

下面空间复杂度是看别人博客的,我也不大懂了……改天再研究下。

最优的情况下空间复杂度为:O(logn);每一次都平分数组的情况
最差的情况下空间复杂度为:O( n );退化为冒泡排序的情况

稳定性:不稳定

 

快速排序效果:

 

 

 

参考:

http://www.cnblogs.com/alex3714/articles/5474411.html

http://www.blogjava.net/todayx-org/archive/2012/01/08/368091.html

http://blog.csdn.net/hguisu/article/details/7776068#t6

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python爬虫实战(三)--------搜.. 下一篇python抽象类+抽象方法实现接口(i..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目