排序算法时间复杂度和空间复杂度比较
来源:互联网 发布:淘宝商城床上四件套 编辑:程序博客网 时间:2024/05/22 06:31
时间复杂度
n^2表示n的平方,选择排序有时叫做直接选择排序或简单选择排序
排序方法平均时间最好时间最坏时间桶排序(不稳定)O(n)O(n)O(n)基数排序(稳定)O(n)O(n)O(n)归并排序(稳定)O(nlogn)O(nlogn)O(nlogn)快速排序(不稳定)O(nlogn)O(nlogn)O(n^2)堆排序(不稳定)O(nlogn)O(nlogn)O(nlogn)希尔排序(不稳定)O(n^1.25) 冒泡排序(稳定)O(n^2)O(n)O(n^2)选择排序(不稳定)O(n^2)O(n^2)O(n^2)直接插入排序(稳定)O(n^2)O(n)O(n^2)O(n)这样的标志叫做渐近时间复杂度,是个近似值.各种渐近时间复杂度由小到大的顺序如下
O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
一般时间复杂度到了2^n(指数阶)及更大的时间复杂度,这样的算法我们基本上不会用了,太不实用了.比如递归实现的汉诺塔问题算法就是O(2^n).
平方阶(n^2)的算法是勉强能用,而nlogn及更小的时间复杂度算法那就是非常高效的算法了啊.
空间复杂度
冒泡排序,简单选择排序,堆排序,直接插入排序,希尔排序的空间复杂度为O(1),因为需要一个临时变量来交换元素位置,(另外遍历序列时自然少不了用一个变量来做索引)
快速排序空间复杂度为logn(因为递归调用了) ,归并排序空间复杂是O(n),需要一个大小为n的临时数组.
基数排序的空间复杂是O(n),桶排序的空间复杂度不确定
最快的排序算法是桶排序
所有排序算法中最快的应该是桶排序(很多人误以为是快速排序,实际上不是.不过实际应用中快速排序用的多)但桶排序一般用的不多,因为有几个比较大的缺陷.
1.待排序的元素不能是负数,小数.
2.空间复杂度不确定,要看待排序元素中最大值是多少.
所需要的辅助数组大小即为最大元素的值.
1 0
- 排序算法时间复杂度和空间复杂度比较
- 各种排序算法时间复杂度、空间复杂度比较
- 各种排序算法比较(2):时间复杂度,空间复杂度
- 各种排序算法比较:时间复杂度,空间复杂度
- 各种排序算法比较:时间复杂度,空间复杂度
- 各种排序算法比较:时间复杂度,空间复杂度
- 各种排序算法比较:时间复杂度,空间复杂度
- 各种排序算法比较(2):时间复杂度,空间复杂度
- 7种排序算法时间复杂度空间复杂度比较
- 各种排序算法比较及时间复杂度,空间复杂度
- 排序算法时间复杂度、空间复杂度、稳定性比较
- 【排序】各种排序算法时间复杂度和空间复杂度表
- 算法 排序算法之时间复杂度和空间复杂度
- 各类排序算法的时间复杂度和空间复杂度的比较表
- 常用的八大排序算法时间复杂度和空间复杂度比较
- 常用的排序算法的时间复杂度和空间复杂度
- 排序算法的时间复杂度和空间复杂度
- 内部排序算法的稳定性,时间复杂度和空间复杂度
- Android开发之IPC机制
- 全民直播牵手阿里云,技术升级触发直播新体验
- Android开发之IPC机制
- HTML5无刷新改变当前url
- 产品3周迭代一次,启信宝驾驭8000万企业征信的平台架构
- 排序算法时间复杂度和空间复杂度比较
- acm学习(1)输入输出
- 大三怎么为考研做准备?
- leetcode:33. Search in Rotated Sorted Array
- 新手机器学习-tensorflow
- 用API函数读写初始化文件(*.ini)的方法
- 日交易笔百万级,Ping++的大数据平台架构
- C/C++:提升_指针的指针和指针的引用
- 飞行员配对方案问题