插入排序演算法 希爾排序

2021-10-20 13:30:17 字數 821 閱讀 4940

插入排序演算法-----希爾排序

希爾排序思想是將陣列每次分成不同的陣列同時進行排序,劃分的方式是設定增量值,即h= length/2, h /=2;與直接排序最大的不同就是比較的陣列值下標間隔不同。希爾排序在資料量龐大的時候進行排序效率高,時間短。

觀察下圖,根據以上思想,進行移動。

**如下:

#

include

void

shellsort

(int

*a,int length)

else

}

a[j+h]

= temp;

//陣列下標間隔每加乙個增量值h }}

}int

main()

;int length =

sizeof

(arry)

/sizeof

(int);

printf

("排序前: ");

for(

int i=

0; i

)shellsort

(arry, length)

;printf

("\n排序後: ");

for(

int i=

0; i

)return0;

}

排序演算法 插入排序 希爾排序

1 相鄰資料之間相比較。先是1,0 然後2,1 1,0 以此類推 總結 大for從1 n 小for從i 0,之後判斷交換即可 public void charusort for int i 1 i a.length i 2 希爾排序是插入排序特殊化,他不再比相鄰資料,而是可以比較類似1,4,13.的...

插入排序 希爾插入排序

本文借鑑於lsgo實驗室創始人馬老師 演算法 希爾插入排序 delta len nums 2 while delta 0 shell delta,nums delta delta 2return nums defshell delta,key for i in range delta,len key...

演算法探索 插入排序演算法 簡單插入排序 希爾排序

常用的排序演算法分為 交換排序 氣泡排序 快速排序 插入排序 簡單插入排序 希爾排序 選擇排序 簡單選擇排序 堆排序 歸併排序 基數排序 桶排序 插入排序 顧名思義,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入 依據深海的理解舉乙個簡單的例子 未排序序列是 5,9,8,4,2 已排...