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...的資料,這樣會更快
/**
* 總結---首先獲取h
* 之後在插入排序的基礎上將1變成h即可
* @param a
*/public static void shellsort(comparable a)
while (h >= 1) }}
//完成最大的for迴圈後,h變成4,進而上邊的for變成 a[4]與a[0]
h = h/3;
}}
插入排序演算法 希爾排序
插入排序演算法 希爾排序 希爾排序思想是將陣列每次分成不同的陣列同時進行排序,劃分的方式是設定增量值,即h length 2,h 2 與直接排序最大的不同就是比較的陣列值下標間隔不同。希爾排序在資料量龐大的時候進行排序效率高,時間短。觀察下圖,根據以上思想,進行移動。如下 include void ...
插入排序 希爾插入排序
本文借鑑於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...
排序演算法 插入排序與希爾排序
最近一直在看 演算法 正好複習到了排序這部分,就都總結一下。插入排序 插入排序和選擇排序都屬於非常簡單而且容易理解的排序演算法。插入排序就像我們平時玩的紙牌,在排順序的時候,會按照順序一張一張插入。在乙個亂序陣列中,同樣如此,我們會在遍歷中,將資料按照公升序或降序方式向之前已經排列好的資料中進行插入...