Pythonで学ぶアルゴリズム

探索

リンク概要
二分探索整列済みのデータに対して、あたりを付けながら(データの数を半分にし)繰り返し検索する。
線形探索先頭から順に検索する。
Tree構造 幅優先探索(BFS)幅優先でルートに近いものを左から右と取り出す。
Tree構造 深さ優先探索(DFS)深いところまで一気に潜り、再帰的に他の要素を取り出す。

ソート

リンク概要
バブルソート隣り合う要素の大小を比較しながら整列。
マージソート分割統治法による整列。
挿入ソート整列してある配列に追加要素を適切な場所に挿入を繰り返す。
シェルソート間隔の離れた要素を比較し、要素間の間隔を小さくしながら並び替えを繰り返す。
選択ソート要素から、最大値または最小値を探索し、配列最後の要素と入れ替えを繰り返す。
ヒープソートリストの並べ替えを二分ヒープ木を用いて行う。
クイックソート他のソート法と比べて、一般的に最も高速(※必ずしも速いわけではない)

その他

リンク概要
Fizz Buzz入門に最適なかんたんなゲームを書いてみる。
乱数でランダムな要素と構造の二分木を作成幅優先探索などをかんたんに試すために、ランダムな要素と構造の二分木を作成してみます。
二分木を表示二分木をターミナル上でかんたんに表示するための仕組みを作成してみます。
ユークリッドの互除法2つの自然数の最大公約数を求める手法の一つを実装してみる。