def xier(alist): # 准备工作:长度+偏移量 n = len(alist) gap = n // 2 # 外部的递归循环 while gap >= 1: # 单次希尔需要进行多少个组内排序 for i in range(gap,n): # 分组后组内插入排序 while (i-gap) >= 0: if alist[i] > alist[i-gap]: alist[i],alist[i-gap] = alist[i-gap],alist[i] # 过程跟踪 i = i - gap else: break # 递归的动作 gap = gap // 2 if __name__ == '__main__': li = [5, 1, 9, 4, 2, 7, 0, 8, 3, 6] xier(li) print(li)
python排序算法之希尔排序
猜你喜欢
转载自blog.csdn.net/weixin_41896508/article/details/80808265
今日推荐
周排行