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

2021-08-26 05:21:49 字數 488 閱讀 5232

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...

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

最近一直在看 演算法 正好複習到了排序這部分,就都總結一下。插入排序 插入排序和選擇排序都屬於非常簡單而且容易理解的排序演算法。插入排序就像我們平時玩的紙牌,在排順序的時候,會按照順序一張一張插入。在乙個亂序陣列中,同樣如此,我們會在遍歷中,將資料按照公升序或降序方式向之前已經排列好的資料中進行插入...