← クエスト一覧

クエスト67:バブルソートを実装しよう

スライド 1 / 5
コーデ
💻 コード例
実行結果
← クエスト一覧
🐍 Python / Quest 67 / 85

クエスト67:バブルソートを実装しよう

発展 +10 XP
🏠
今回の課題
bubble_sort(arr) を自分で実装して、リストを小さい順に並べ替えて返そう。複数のケースで自動テストされ、全部通れば合格!
📖 解説を見る
🫧 バブルソートって何?

となり合う2つを比べて、大きい方を後ろへ移すことをくり返す、いちばん基本的な並べ替えです。大きい値が泡(バブル)のように後ろへ浮かんでいきます。

✏️ 書き方:
for i in range(len(nums)):
    for j in range(len(nums) - i - 1):
        if nums[j] > nums[j + 1]:
            nums[j], nums[j + 1] = nums[j + 1], nums[j]


💡 どこで使う?

実務ではふつう sorted()(Q29)を使いますが、その中で何が起きているかを理解するための教材です。「となりと比べて交換」「a, b = b, a で入れ替え」という考え方は、他のアルゴリズムでもくり返し出てきます。

⚠️ ポイント:
a, b = b, a で2つの値を一度に入れ替えられる
・外の i が進むほど、後ろは並び終わっているので比べる範囲を狭められる
ヒントを見る
nums[j] > nums[j + 1] のとき、nums[j], nums[j + 1] = nums[j + 1], nums[j] で入れ替えよう!
期待する出力
すべてのテストに合格!
📄 見本
「答えを見る」を押すと、お手本のコードが出ます。クリックでコピーできます。
💻 コードエディタ
実行すると結果がここに表示されます
正解!見本と同じになりました。
次へ →
🏠 ホームへ

れんしゅうもんだい

☑ 0 / 3 正解 レッスンに戻る

全問正解でクエストクリア!

未挑戦

問題 1: [9, 1, 7, 3, 5]をバブルソートで昇順に並べて表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
[1, 3, 5, 7, 9]
未挑戦

問題 2: [5, 3, 1, 4, 2]を降順(大きい順)にバブルソートして表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
[5, 4, 3, 2, 1]
未挑戦

問題 3: バブルソートを関数bubble_sort(lst)にして[8,2,6,1,4]を並べ替えて表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
[1, 2, 4, 6, 8]
コピーしました!