排序算法之希尔排序
1.算法原理
希尔排序(Shell Sort)是一种 插入排序 的改进算法,它通过将原始的待排序序列分割成若干个较小的子序列进行插入排序,最终将整个序列排序。以下是关于希尔排序的详细说明:
算法原理:
希尔排序是基于 插入排序 的思想,但它通过增量序列将原始序列分割成若干个较小的子序列进行插入排序,逐步减小增量,最终完成排序。增量序列通常是根据经验或数学公式定义的,最常用的是使用希尔增量(n/2,n/4,n/8…)。
希尔排序的关键在于选择合适的增量序列,并将子序列进行插入排序。这种分割和排序的过程会使得序列中的元素逐渐有序,最终达到整个序列有序的目的。
2.代码实现(python)
def shell_sort(list):
#子列表插入排序
def gapinsert_sort(gap,start_index):
for i in range(start_index+gap,len(list),gap):
key = list[i]
j = i - gap
while j >=start_index and key <