python实现shell排序
Posted jiaxiaoxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实现shell排序相关的知识,希望对你有一定的参考价值。
shell(希尔)排序是插入排序的一种,是直接插入排序算法的一种更高效的改进版本, 其思想是使数组中任意间隔h的元素都是有序的,其目的是为了减少元素的移动距离.
时间复杂度: O(nlogn)~O(n^2)
def shell_sort(array): n = len(array) gap = n // 2 while gap > 0: for i in range(gap, n): for j in range(i, gap-1, -gap): if array[j] < array[j-gap]: array[j], array[j-gap] = array[j-gap], array[j] else: break gap //= 2
return array
array_0 = [12, 23, 54, 32, 11, 76, 5, 73,2, 89, 76,554,65,234, 42]
shell_sort(array_0)
>>> [2, 5, 11, 12, 23, 32, 42, 54, 65, 73, 76, 76, 89, 234, 554]
以上是关于python实现shell排序的主要内容,如果未能解决你的问题,请参考以下文章