はじめに
最近、CTFの勉強としてCpawCTFの問題を解いています。
今回はPythonの勉強も兼ねて、Pythonでバブルソートを実装してCpawCTFのQ14を解いてみました。
https://ctf.cpaw.site/questions.php?qnum=14
バブルソートの勉強で参考にしたもの
http://algorithm.wiki/ja/app/
「アルゴリズム図鑑」というアプリを利用しました。
グラフィカルにソート方法が勉強できて分かりやすかったです。オススメ。
コード
sortDataList = [15,1,93,52,66,31,87,0,42,77,46,24,99,10,19,36,27,4,58,76,2,81,50,102,33,94,20,14,80,82,49,41,12,143,121,7,111,100,60,55,108,34,150,103,109,130,25,54,57,159,136,110,3,167,119,72,18,151,105,171,160,144,85,201,193,188,190,146,210,211,63,207]
for i in range(len(sortDataList)):
for j in range(len(sortDataList) - 1, i, -1):
if sortDataList[j] > sortDataList[j - 1]:
sortDataList[j], sortDataList[j - 1] = sortDataList[j - 1], sortDataList[j]
flag = map(str, sortDataList)
print(''.join(flag))
所感
アルゴリズムをコードとして実装するのが苦手なので、これを機に色々なソート法を実装していきたいと思いました。