希尔排序
(1) 希尔排序思路
- 希尔排序是一种分组
插入排序
算法。 - 首先取一个整数d1=n/2, 将元素分为d1个组. 每组相邻量元素之间距离为d1, 在各组内进行直接插入排序;
- 取第二个整数d2=d1/2, 重复上述分组排序过程, 直到di=1. 即所有元素在同一组内进行直接插入排序
(2) 代码实现
1 | def insert_sort_part(li, d): # 分组插入排序实现 |
计数排序
(1) 计数排序思路
花O(n)的时间扫描一下整个序列 A,获取最小值 min 和最大值 max
开辟一块新的空间创建新的数组 B,长度为 ( max - min + 1)
数组 B 中 index 的元素记录的值是 A 中某元素出现的次数
最后输出目标整数序列,具体的逻辑是遍历数组 B,输出相应元素以及对应的个数
(2) 代码实现
1 | def count_sort(li, max): |
缺点: 元素的范围不能太大