排序算法小结
来源:互联网 发布:超好用的mac桌面壁纸 编辑:程序博客网 时间:2024/06/17 17:12
经典的排序算法有十种,分别是:选择排序、插入排序、希尔排序、冒泡排序、堆排序、合并排序、快速排序、计数排序、基数排序和桶排序。
下面对这些算法分类如下:
选择排序:简单选择排序、堆排序
插入排序:直接插入排序、二分插入排序、希尔排序
快速排序:快速排序、随机化快速排序
线性时间排序:计数排序、基数排序、桶排序
其他:冒泡排序、合并排序
分析算法的性能,主要是分析其时间复杂度,在分析排序算法的时候,只要涉及到划分和二分,只要划分上面不出现一边为空的情况,时间复杂度就会有lgn,但并不一定就是O(lgn),在进行排序算法的比较时,往往还要看算法的稳定性,稳定性就是考察在排序过程中,关键值相等的两个元素的相对(先后)位置在排序结束后是否会保持不变,如果不变则稳定,否则排序算法是不稳定的,通常情况下,如果排序过程中只是相邻元素进行交换,则算法是稳定的,如果交换的元素之间有一定的区间跨度,则是不稳定的。非线性时间排序都是比较排序,即是通过元素之间的相互比较来确定顺序位置的,而线性时间排序则不是比较排序,但是线性时间排序有一定的局限性,元素关键值的大小必须满足一定的要求,在一个合适范围和分布之下使用效果较好,而比较排序往往也是原地排序,非比较排序则需要较多的额外空间来保存元素,因而非比较排序都不是原地排序。
这些排序排序算法的时间复杂度,稳定性,是否比较排序,是否原地排序等特性总结如下:
5 0
- 排序算法小结
- 排序算法小结
- 排序算法小结
- 排序算法小结(转)
- 排序算法小结
- 排序算法小结
- 排序算法小结
- 各种排序算法小结
- 各种排序算法小结
- C 排序算法小结
- 各种排序算法小结
- 排序算法小结(C++)
- (转)排序算法小结
- 排序算法小结
- 排序算法小结
- 排序算法小结
- (转)排序算法小结
- 排序算法小结[zz]
- varnish代理服务器部署
- 【MongoDB for Java】Java操作MongoDB
- 初学 Java Web 开发,请远离各种框架,从 Servlet 开发
- java开发命名规范
- IPSEC流程例子及两个阶段的协商过程详细介绍
- 排序算法小结
- 改变自己编程中的思维方式
- Process com.xxxxxxxx has died
- 学习Linux的七点忠告
- Defender杀毒软件冲突 win8系统Defender关闭方法
- activity的生命周期深入理解
- Neutron印象5:neutron-dhcp-agent
- Java类型转换(int - byte[],float - byte[])
- Gitlab的使用