排序算法----希尔排序
希尔排序 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本,该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量(gap)”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率比直接插入排序有较大提高。 1 """ 2 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 3 """ 4 5 6 # 方式一:元素采取直接插入排序从前往后比较 7 def shell_sort(int_list): 8 length = len(int_list) 9 if length <= 1: return int_list 10 step = length // 2 11 12 while step > 0: 13 for i in range(step, length, step): 14 item = int_list[i] 15 for j in range(0, i, step): 16 if int_list[j] > item: 17 for