数据排序方法的比较
来源:互联网 发布:国家卫生部数据查询 编辑:程序博客网 时间:2024/04/29 10:26
总结一下不同的数据排序算法
首先,排序根据排序方式的不同分为四大类:插入排序、选择排序、交换排序、归并排序
插入排序类: 直插排序 稳定 时间复杂度O(n^2)
希尔排序 不稳定 时间复杂度O(n^1.5)
选择排序类: 简单选择排序 稳定 时间复杂度O(n^2)
堆排序 不稳定 时间复杂度O(nlogn)
交换排序类:冒泡排序 稳定 时间复杂度O(n^2)
快速排序 不稳定 时间复杂度O(nlogn) 空间复杂度O(logn)~O(n)
归并排序类:归并排序 稳定 时间复杂度O(nlogn) 空间复杂度O(n)
从时间复杂度来看,显然堆排、快排、归并要更好一些,而归并排序牺牲了空间复杂度换取了稳定性的提升,在一些非常在乎稳定性的环境中用归并排序是一个不错的选择。而在一些非常在意内存容量的环境中,几乎没有多占用堆排序就显得更好了。
相对于三种比较复杂的排序方法,如果数据量很小的话那么冒泡排序、直插排序来的更快一些
假如说需要排序的每个数据本身非常庞大,那么可以选择交换次数比较少的简单选择排序。
不受初始数据状态影响的排序方式有:简单选择排序、堆排序、归并排序
- 数据排序方法的比较
- 排序方法的比较
- 排序方法的比较
- 排序方法的比较
- 排序方法的比较
- java比较排序的方法
- 各种排序方法的比较
- 各种排序方法的比较
- 各种排序方法的比较
- 常用的内部排序方法-比较排序
- 数据查询方法的比较
- java数组详解(包括数据的初始化、比较、排序、重要方法)
- java学习(2)数组详解(包括数据的初始化、比较、排序、重要方法)
- 几种排序方法的比较
- 各种内部排序方法的比较
- 各种排序方法的综合比较
- 各种排序方法的综合比较
- 各种排序方法的性能比较
- Android入门各种小错误
- android图片压缩的3种方法实例
- ant maven gradle
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- 图片链接。
- 数据排序方法的比较
- 《C# in Depth:深入理解C#》读书笔记 - 方法组转换和匿名方法
- PHP http(file_get_content) GET与POST请求方式
- 行业发展(百度、阿里、腾讯)
- java排序
- python中requests使用代理proxies
- Android 性能优化注意事项
- ubuntu14.04与win7相互共享
- 如何生成keystore