立ち位置・仕様
- いろんなアルゴリズムをコピペできるように記録するのみ
- 最適化が目的でない
- たまにメモとして解説を残す
- 最低限でまとめる
- データを抽出しやすいように個別のIDを付与
- あるアルゴリズムにおいて、他のアルゴリズムが登場する際にはそのIDを付与
- IDは16進数表記
- なるべく最低限なパッケージで実装
- なるべく特殊なオブジェクト型は使用しない
TargetID
00.00.00.04
ReferenceID
シェルソート
def shellSort(l):
n = len(l)
h = 1
while h < n / 9:
h = h * 3 + 1
while h > 0:
for i in range(h, n):
j = i
while j >= h and l[j-h] > l[j]:
tmp = l[j-h]
l[j-h] = l[j]
l[j] = tmp
j -= h
h = h // 3
return l
使用方法
l = [5,2,3,6,2,1]
l = shellSort(l):
print(l) # [1, 2, 2, 3, 5, 6]