排序算法思想与实现
-
选择排序
- 核心思想:
- 找最小值
- 放在左边(交换位置)
- 不断迭代
插入排序
适合场景: 有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序。
核心思想:
- 每步将一个待排序的记录,按其值的大小插入前面已经排序的文件中适当位置上
- 不断迭代
- 插入排序在大量数据有序的情况下,时间复杂度为0(N),和未排序的键值对有关
Shell排序
它是在插入排序基础上的优化,适合大量的无序的数据排序
思想:
- 先转换为部分有序(通过跳跃性逻辑分组【比如1,5,9,13】),
- 将每个小组进行排序
- 直到增量=1变为插入排序