ヒル ソートの基本的な考え方:
ヒル ソートは、挿入ソートをベースにした改良版です。挿入ソートは配置された配列を操作する場合に効率的ですが、挿入ソートは一度にしか移動できないため、一般に非効率的です。一人。したがって、Hill ソートは、グループ化の増分が 1 になるまで、まずグループ化によってソートします。
例:
arr = [49,38,04,97,76,13,27,49,55,65]、グループ化増分が 5 の場合、赤い数字が 1 つのグループになり、挿入ソートが実行され、そして、ループは順番に走査されます
arr = [13,38,04,97,76,49,27,49,55,65]、走査が完了すると、グループ化の増分は減少します、
arr = [13 ,27,04,55,65 ,49,38,49,97,76]、その後、グループ化増分が 1 になるまで、グループ化増分 2 でグループの挿入ソートを続けます
コード:
Python コード
def shell_sort(lists):
#ヒルソート
count = len(lists) step = 2
group = count / step
while group > 0: # 範囲内の i に対してグループ化ループを増分します
( 0、グループ);