##希爾排序
def sort(arr):
h = 1
size = len(arr)
while h < size // 3:
h = 3 * h + 1
while h >= 1:
for i in range(h, size):
j = i
while j >= h and arr[j] < arr[j-h]:
tmp = arr[j-h]
arr[j-h] = arr[j]
arr[j] = tmp
j -= h
h = h // 3
return arr
##############驗證#############
import numpy as np
len2 = 10
###生成隨機整數列表
arr = np.random.randint(len2 * 10, size=len2)
print('排序前:')
print(arr)
sort(arr)
print('排序后:')
print(arr)
希爾排序
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 選擇排序 對于任何輸入,時間為O(n*n); 冒泡排序 最優(對于升序的數組,因為加入了一個跳出判斷):O(n),...
- 給定數組 int[] arr = {3,6,8,4,7,5,9,1,2,0};使用至少三種方法對數組arr排序(作...
- 實現兩種初級的排序算法: 選擇排序思路 首先,找到數組中最小的那個元素,其次,將它和數組的第一個元素交換位置(如果...