解説
アルゴリズムの良し悪しは「どれだけ速いか」で決まり、それを表すのが計算量です。実際に比較した回数を数えて差を体感しましょう。
1〜100の100個から97を探します。
- 線形探索:先頭から数えるので97回比較します。最悪 n 回(O(n))。
- 二分探索:範囲を半分ずつ絞るので数回で到達します。約 log2(n) 回(O(log n))。
データが増えるほど差は劇的に開きます。100万個なら線形は約100万回、二分はたった約20回です。
書き方
計算量を「比較回数」で体感する。 ・カウンタ変数を1ずつ増やして比較回数を数える。 ・list(range(1, 101)) で 1〜100 のリストを作る。 ・O(n)(線形)と O(log n)(二分)の差を数値で比較。
書いて動かす
この回の課題
1〜100 から 97 を線形探索と二分探索で探し、それぞれの比較回数を数えて差を見てみよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
自分のPCでも続けてみませんか
Windows版 InsightPy は Python を同梱しているので、環境構築なしで同じコードを書いて実行できます。 書いたコードを保存しておけるほか、ステップ実行で変数の変化を1行ずつ確かめられます。 個人の学習や私的な目的でのご利用は、31日目以降も無料です(スクリプトの保存は10本まで)。 このブラウザ版の学習センターも、引き続き無料でお使いいただけます。