排序算法总结
来源:互联网 发布:淘宝边度阳光是正品吗 编辑:程序博客网 时间:2024/06/06 04:08
排序算法注意点:
插入类排序:1:直接插入排序O(n^2)
2:折半插入排序O(n^2)
3:希尔排序 O(n乘以log以2为底,n的对数)
空间复杂度都是O(1)
交换类排序:1:冒泡排序O(n^2),空间复杂度O(1)
2:快速排序O(n乘以log以2为底,n的对数),空间复杂度O(log以2为底,n的对数)
选择类排序:1:简单选择排序O(n^2),空间O(1)
2:堆排序O(n乘以log以2为底,n的对数),空间复杂度O(1)
二路归并排序:O(n乘以log以2为底,n的对数),空间复杂度O(n)
基数排序:时间O(d(n+rd)) d:关键字个数,n:元素数,rd:关键字的取值范围
空间O(rd)
注:对于数值类排序,只能从低位到高位进行基数排序,能有序,(高到低,不行)
1:平均情况下,(快,希,归,堆) ->时间复杂度 O(n乘以log以2为底,n的对数)
归->O(n)
基数->O(rd)
b折半插入排序
插入类排序:1:直接插入排序O(n^2)
2:折半插入排序O(n^2)
3:希尔排序 O(n乘以log以2为底,n的对数)
空间复杂度都是O(1)
交换类排序:1:冒泡排序O(n^2),空间复杂度O(1)
2:快速排序O(n乘以log以2为底,n的对数),空间复杂度O(log以2为底,n的对数)
选择类排序:1:简单选择排序O(n^2),空间O(1)
2:堆排序O(n乘以log以2为底,n的对数),空间复杂度O(1)
二路归并排序:O(n乘以log以2为底,n的对数),空间复杂度O(n)
基数排序:时间O(d(n+rd)) d:关键字个数,n:元素数,rd:关键字的取值范围
空间O(rd)
注:对于数值类排序,只能从低位到高位进行基数排序,能有序,(高到低,不行)
1:平均情况下,(快,希,归,堆) ->时间复杂度 O(n乘以log以2为底,n的对数)
其余O(n^2),基数排序O(d(n+rd)) d:关键字个数,n:元素数,rd:关键字的取值范围
归->O(n)
基数->O(rd)
其他->O(1)
3:时间复杂度,直插与冒泡容易(有序)变成O(n)
4:不稳定排序->(快,希,选,堆)
b选择类(选,堆)
b折半插入排序
另外,(归并,堆,基数)时间复杂度与起始无关
7:排序趟数(所有数都被处理一次为一趟)与原始序列有关--->交换类:冒/快
1 0
- 算法--排序算法总结
- 算法:排序算法总结
- 算法:排序算法总结
- 算法-排序算法总结
- 算法-排序算法总结
- 【排序算法】排序算法总结
- 排序算法总结---希尔排序
- 排序算法总结---冒泡排序
- 排序算法总结----快速排序
- 排序算法总结---希尔排序
- 排序算法总结【内排序】
- 排序算法之内排序总结
- 排序算法总结:冒泡排序
- 【排序算法总结】冒泡排序
- 【排序算法总结】选择排序
- 排序算法总结
- 排序算法大总结
- 排序算法总结
- android 如何自定义ProgressBar
- 获取路径上的文件名
- Eclipse/MyEclipse配置XML语法提示
- 正则表达式语法
- HiveQL 数据定义语言使用(一)—Hive中数据库的创建、显示、删除和修改操作介绍
- 排序算法总结
- scala入门-01-IDEA安装scala插件
- opencv第一个显示图像的小程序
- Android UI详解之EditText
- svn常用命令
- 不良代码展示-Activity中使用线程的例子
- LitePal学习小结 (一)
- ScheduledExecutorService定时周期执行指定的任务
- SC16IS740 Block diagram