Scratch 選択ソート課題3
課題内容
スペースキーでリストを選択ソートを用いて昇順に並び替え
解答
解答を表示する
背景
変更①変更②
定義 変数初期化
↓↓↓↓↓
定義 変数初期化 [状態 v]を[未整列]にする [入替場所 v]を(1)にする [選択場所 v]を(0)にする [最小場所 v]を(0)にする
定義 選択ソート
↓↓↓↓↓
定義 選択ソート [入替場所 v]を(1)にする ([リスト v]の長さ::list)回繰り返す [入替値 v]を([リスト v]の(入替場所)番目)にする [最小場所 v]を(入替場所)にする [最小値 v]を([リスト v]の(最小場所)番目)にする [選択場所 v]を((入替場所)+(1))にする (([リスト v]の長さ::list)-(入替場所))回繰り返す [選択値 v]を([リスト v]の(選択場所)番目)にする もし<(最小値)>(選択値)>なら [最小値 v]を(選択値)にする [最小場所 v]を(選択場所)にする end [選択場所 v]を(1)ずつ変える end [リスト v]の(入替場所)番目を(最小値)で置き換える [リスト v]の(最小場所)番目を(入替値)で置き換える [入替場所 v]を(1)ずつ変える end
解説
解説を表示する
背景
変更①変更②
定義 変数初期化
定義「変数初期化」が呼び出されたとき、スクリプトを開始する
[状態 v]を[未整列]にする [入替場所 v]を(1)にする [選択場所 v]を(0)にする [最小場所 v]を(0)にする
変数の初期設定
定義 選択ソート
定義「選択ソート」が呼び出されたとき、スクリプトを開始する
[入替場所 v]を(1)にする
変数「入替場所」に最初の位置を格納する
([リスト v]の長さ::list)回繰り返す end
リストの要素の個数回繰り返す
[入替値 v]を([リスト v]の(入替場所)番目)にする [最小場所 v]を(入替場所)にする [最小値 v]を([リスト v]の(最小場所)番目)にする [選択場所 v]を((入替場所)+(1))にする
最小場所と値を仮に変数「最小場所」・「最小値」に格納する
(([リスト v]の長さ::list)-(入替場所))回繰り返す end
変数「選択場所」が最後まで繰り返す
[選択値 v]を([リスト v]の(選択場所)番目)にする もし<(最小値)>(選択値)>なら [最小値 v]を(選択値)にする [最小場所 v]を(選択場所)にする end [選択場所 v]を(1)ずつ変える
暫定の最小値より小さい場合、最小値を更新する
[リスト v]の(入替場所)番目を(最小値)で置き換える [リスト v]の(最小場所)番目を(入替値)で置き換える
リストの「入替場所」番目と「最小場所」番目の値を入れ替える
[入替場所 v]を(1)ずつ変える
変数「入替場所」を次の位置にする