##################ヒルは#######################ソート#を
「」 " シェルソート シェルソート、挿入ソートの改良版である アルゴリズムのステップ シーケンスに全体としてではなく、配列の複数として 。一定間隔の仮定4は= GAPの 連想リスト= [54,26 、93,17,77,31,44,55,20] 54,26,93,17,77,31,44,55,20 グループ間隔は4である547 720、 2のセットであり、2631年、スペーサ4、 グループ3、4である9344は、スペーサーであり、 グループ4,4である1755はスペーサーであり、 各グループは、ソートアルゴリズム挿入され、 [547720]、すなわち、最初の54であります前面および背面、挿入にそれぞれを比較、-------- [205477]は すべて再び1つのシーケンスに合わせた、完了した後にソートされ、 そして再び、そのようなギャップ= 2として、間隔を変更しますアルゴリズムソート挿入は、 再び全体またはシーケンスとしてマージされ 、再び調整ギャップ= 1このようなギャップを、次いでソートが完了するまで再びソート 「」"
##################ヒルは#######################ソート#を
#初版: DEFのshell_sort(連想リスト): N- = LEN(連想リスト) ギャップ= N-2 // ながらギャップ> 0: #は、最も外側の制御ループは、小さいギャップである 範囲でJ(のためGAP、N-): 私は= J I> 0つつ: 連想リストIF [I] <連想リスト[I - GAP]: 連想リスト[I]、連想リスト[I - GAP =連想リスト[I - GAP]、連想リスト[I] I - =ギャップ :他 BREAKの #はギャップステップを短く、 ギャップ= 2 // #第二版: DEFのshell_sort2(連想リスト): N- = LEN(連想リスト) #初期段階 ギャップ= N-2 // ながらギャップ> 0: #挿入ソートのステップ :Iの範囲内(ギャップ、N)用 J = #插入排序 一方J> =ギャップと連想リスト[J-ギャップ]>連想リスト[J]: 連想リスト[J-ギャップ]、連想リスト[J] =連想リスト[J] 、連想リスト[J-ギャップ] J - =ギャップ #得到新的步长 ギャップ=ギャップ/ 2 なら__name__ == '__main__': 連想リスト= [54,26,93,17,77,31,44,55,20 ] shell_sort(連想リスト) プリント(連想リスト)