Scratch バブルソート課題3

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)ずつ変える

変へん数すう「終しゅう端たん」を次つぎの位い置ちにする

サさンんプぷルる

sb3ダだウうンんロろーードど