Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

プレビュー

並べかえる

これはレッスンの最初のページです。読んで、アクティビティを試してみましょう。続きは授業の全体にあります。

40分

カードを小さい順に

手札の数字カードを、小さい順に並べたいとき、あなたはどうしますか。

一番小さいカードを見つけて、一番左に置きます。次に、残りから一番小さいカードを選んで、その右に置きます。

これを、くり返せば、並びます。プログラムでも、同じ手順を使えます。

今日のキーワード

ことばいみれい
並べかえデータを、小さい順や大きい順に、並べなおすことです。[5, 3, 8] を [3, 5, 8] にする
昇順と降順昇順は小さい順、降順は大きい順です。1, 2, 3 は昇順
選択ソート残りの中で一番小さいものを選び、前に置くことをくり返す方法です。最小を探して、先頭と入れかえる
入れかえリストの二つの場所の値を、取りかえることです。temp を使う
写し元のリストを変えないために作る、同じ中身の別のリストです。result = []

学生が入力するセルは、このプレビューでは空白です。

例: [5, 3, 8, 1] を並べかえる

回見る範囲一番小さい値並べた結果
はじめ(なし)(なし)[5, 3, 8, 1]
1回目0番目から後ろ1[1, 3, 8, 5]
2回目1番目から後ろ3[1, 3, 8, 5]
3回目2番目から後ろ5[1, 3, 5, 8]

学生が入力するセルは、このプレビューでは空白です。

小さな確認: 手順の理解

やってみよう

小さな確認: 手順の理解

3問
挑戦してみましょう。回答はここで採点され、その後は保存されません。点数を残したい場合や、続きから再開したい場合はログインしてください。ログインして点数を保存

答えはここで採点され、保存されません。アカウントがあれば、結果が残ります。

二つの値を入れかえる

a = b と書いて、そのあと b = a と書くと、二つとも同じ値になってしまいます。

先に、一方を temp に預けておきます。そうすれば、値が消えません。コップ二つの飲み物を入れかえるとき、空のコップを使うのと同じです。

やってみよう: 入れかえる

コード: python
items = [5, 3, 8, 1]

# 0番目と3番目を入れかえます。
temp = items[0]
items[0] = items[3]
items[3] = temp

print(items)

# temp を使わずに、2行だけで書くと、どうなりますか。
# 試して、結果を見てみましょう。

やってみよう: 選択ソート

コード: python
items = [5, 3, 8, 1]

for i in range(len(items)):
    # i 番目から後ろで、一番小さい値の番号を探します。
    best = i
    for j in range(i + 1, len(items)):
        if items[j] < items[best]:
            best = j
    temp = items[i]
    items[i] = items[best]
    items[best] = temp
    print(i + 1, "回目:", items)

for が二重になっている

ヒント

外の for は、「何番目を決めるか」です。内の for は、「残りで一番小さいものを探す」ことです。前の授業で学んだ、最小を探す手順が、内の for の中に入っています。

Python の道具

Python には、並べかえの道具があります。items.sort() は、元のリストを並べかえます。

sorted(items) は、並べた新しいリストを返します。元は変わりません。大きい順にするには、reverse=True を付けます。

レッスンはまだ続きます

このレッスンの残り5つの部分は、練習問題や最後の確認とともに、授業の全体にあります。アカウントがあれば、すべて使えます。