在shellSort中,我们将数组h排序为一个较大的h值。我们不断减小h值,直到它变为1。如果每个h元素的所有子列表都已排序,则称数组为h排序。
null
# Python program for implementation of Shell Sort def shellSort(arr): # Start with a big gap, then reduce the gap n = len (arr) gap = n / 2 # Do a gapped insertion sort for this gap size. # The first gap elements a[0..gap-1] are already in gapped # order keep adding one more element until the entire array # is gap sorted while gap > 0 : for i in range (gap,n): # add a[i] to the elements that have been gap sorted # save a[i] in temp and make a hole at position i temp = arr[i] # shift earlier gap-sorted elements up until the correct # location for a[i] is found j = i while j > = gap and arr[j - gap] >temp: arr[j] = arr[j - gap] j - = gap # put temp (the original a[i]) in its correct location arr[j] = temp gap / = 2 # Driver code to test above arr = [ 12 , 34 , 54 , 2 , 3 ] n = len (arr) print ( "Array before sorting:" ) for i in range (n): print (arr[i]), shellSort(arr) print ( "Array after sorting:" ) for i in range (n): print (arr[i]), # This code is contributed by Mohit Kumra |
输出:
Array before sorting: 12 34 54 2 3 Array after sorting: 2 3 12 34 54
请参阅完整的文章 贝壳类 更多细节!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END