算法如何选择
排序算法
1.1 如何选择排序算法
-
选择排序算法的原则: 用最短的时间, 最少的资源完成排序工作
-
各排序算法的比较
-
选择排序算法时通常需要考虑一下因素:
首先时带排序的数据量大小, 直接决定了算法的优劣程度
当数据量较小时(100内), 建议选择直接插入或直接选择排序
当数据量较大时, 建议使用快速排序, 堆排序, 归并排序
-
稳定性
-
占用空间
1.2 举例说明
- 需求: 有5万个学生信息, 已经按照学号升序排序, 现在要求按照学生成绩升序排序, 成绩相同按照学号升序排序
分析: 由于数据量较大, 要排序的成绩数据是随机的, 学号已经升序, 成绩相同的按照学号升序 要求排序算法 具有稳定性, 排序数据中存在较多的重复数据
结论: 采用归并排序 - 希尔排序原理: 通过不同的步长把较小的数据快速交换到较靠前的位置(升序排序时), 所以比较适用于大量乱序数据且完全无序的情况
- 基数排序: 通过不同位上的数来分类数据, 适用于数据差距较大的情况, 且这个排序方式针对数字的
- 快速排序使用与大多数情况