标签:cells 记录 最好 复杂度 操作 比较 磁盘 希尔排序算法 数组
排序是程序开发中一种非常常见的操作,对一组任意的数据元素(或记录)经过排序操作后,就可以把他们变成一组按关键字排序的有序队列。
对于排序算法从以下几点去衡量算法的优劣:
对于排序算法的分类:
外部排序:
内部排序:
排序算法整体印象图(来自网络截图),我们先对整体的排序算法一个概括,后续会详细的一一介绍
算法种类 | 排序算法 | 平均时间复杂度 | 最好情况 | 最坏情况 | 空间复杂度 | 是否稳定 |
插入排序 | 直接插入排序算法 | O(n2) | O(n) | O(n2) | O(1) | 稳定 |
希尔排序算法 | O(nlogn) | O(nlogn2) | O(nlogn2) | O(1) | 不稳定 | |
选择排序 | 简单选择排序算法 | O(n2) | O(n2) | O(n2) | O(1) | 不稳定 |
堆排序 | O(nlogn) | O(nlogn) | O(nlogn) | O(1) | 不稳定 | |
交换排序 | 冒泡排序算法 | O(n2) | O(n) | O(n2) | O(1)/无需 | 稳定 |
快速排序算法 | O(nlogn) | O(nlogn) | O(n2) | O(logn) | 不稳定 | |
-- | 归并排序算法 | O(nlogn) | O(nlogn) | O(nlogn) | O(n) | 稳定 |
-- | 基数排序算法 | O(n*k) | O(n*k) | O(n+k) | O(k) | 稳定 |
-- | 桶排序算法 | O(n+k) | O(n+k) | O(n2) | O(n+k) | 稳定 |
-- | 计数排序算法 | O(n+k) | O(n+k) | O(n+k) | O(k) | 稳定 |
欢迎大家一块探讨
标签:cells 记录 最好 复杂度 操作 比较 磁盘 希尔排序算法 数组
原文地址:http://www.cnblogs.com/blogsf/p/7601325.html