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