【やってみた】交換法でソートをやってみた(Python)
基本的な整列アルゴリズムである交換法をPythonで実装してみました。
交換法とは
交換法とは * 隣り合う数字を順番に比較する
- 左が大きい場合は交換する
を繰り返して並び替える方法です。
例えば(3,1,2)の場合
- 3と1を比較する→左側の3のほうが大きい→3と1を入れ替える→(1,3,2)
2.3と2を比較する→左側の3のほうが大きい→3と2を入れ替える→(1,2,3)
今回は結果的に並び変わりましたが、この方法では端から端まで入れ替えると一番右側に 一番大きな数字が来ます。そこで次は一番右側の数字を除いて実施します。これを繰り返すと並び変えができるという寸法です。
Pythonで実装
#並び替える数字 a = [1,9,4,6,3,7,5,8,2] i = len(a) listR = list(reversed(range(i))) for p in listR: print(p) for n in range(p): b = [0]*2 print(n) if a[n] > a[n+1]:#左右の文字の大きさを比較 #左側の数字が大きければ入れ替える b[0] = a[n+1] b[1] = a[n] else: #右側の数字が大きい場合はそのまま b[0] = a[n] b[1] = a[n+1] a[n] = b[0] a[n+1] = b[1] print(a) #ソートの結果 #[1, 2, 3, 4, 5, 6, 7, 8, 9]
ちょっと雑なコードですね。