Scratch シェーカーソート課題3

Scratch シしェぇーーカかーーソそーートと課か題だい3

課か題だい内ない容よう

スすペぺーースすキきーーでリりスすトとをシしェぇーーカかーーソそーートとを用もちいて昇しょう順じゅんに並ならび替かえ

解かい答とう

解かい答とうを表ひょう示じする

背はい景けい

変へん更こう①変へん更こう②変へん更こう③
定義 変数初期化

↓↓↓↓↓

定義 変数初期化
[状態 v]を[未整列]にする
[終端上 v]を(1)にする
[終端下 v]を([リスト v]の長さ::list)にする
[天秤左場所 v]を(0)にする
[天秤右場所 v]を(0)にする
定義 シェーカーソート

↓↓↓↓↓

定義 シェーカーソート
<(終端上)=(終端下)>まで繰り返す
バブルソート(終端下)(-1)::custom
[終端上 v]を(最終交換場所)にする
バブルソート(終端上)(1)::custom
[終端下 v]を(最終交換場所)にする
end
定義 バブルソート(開始場所)(向き)

↓↓↓↓↓

定義 バブルソート(開始場所)(向き)
[選択場所 v]を(開始場所)にする
((終端下)-(終端上))回繰り返す
[天秤左場所 v]を((選択場所)+(向き))にする
[天秤左値 v]を([リスト v]の(天秤左場所)番目)にする
[天秤右場所 v]を(選択場所)にする
[天秤右値 v]を([リスト v]の(天秤右場所)番目)にする
もし<((天秤左値)*(向き))<((天秤右値)*(向き))>なら
[リスト v]の(天秤左場所)番目を(天秤右値)で置き換える
[リスト v]の(天秤右場所)番目を(天秤左値)で置き換える
[最終交換場所 v]を(選択場所)にする
end
[選択場所 v]を(向き)ずつ変える
end

解かい説せつ

解かい説せつを表ひょう示じする

背はい景けい

変へん更こう①変へん更こう②変へん更こう③
定義 変数初期化

定てい義ぎ「変へん数すう初しょ期き化か」が呼よび出だされたとき、スすクくリりプぷトとを開かい始しする

[状態 v]を[未整列]にする
[終端上 v]を(1)にする
[終端下 v]を([リスト v]の長さ::list)にする
[天秤左場所 v]を(0)にする
[天秤右場所 v]を(0)にする

変へん数すうの初しょ期き設せっ定てい

定義 シェーカーソート

定てい義ぎ「シしェぇーーカかーーソそーートと」が呼よび出だされたとき、スすクくリりプぷトとを開かい始しする

<(終端上)=(終端下)>まで繰り返す
end

終しゅう端たん上うえと終しゅう端たん下したが同おなじになるまで繰くり返かえす

バブルソート(終端下)(-1)::custom
[終端上 v]を(最終交換場所)にする
バブルソート(終端上)(1)::custom
[終端下 v]を(最終交換場所)にする

向むきを下した→上うえ・上うえから下したでバばブぶルるソそーートとする

定義 バブルソート(開始場所)(向き)

定てい義ぎ「バばブぶルるソそーートと」が呼よび出だされたとき、スすクくリりプぷトとを開かい始しする

[選択場所 v]を(開始場所::custom)にする

変へん数すう「選せん択たく場ば所しょ」を格かく納のうする

((終端下)-(終端上))回繰り返す
end

変へん数すう「選せん択たく場ば所しょ」が変へん数すう「終しゅう端たん上うえ」または変へん数すう「終しゅう端たん下した」まで繰くり返かえす

[天秤左場所 v]を((選択場所)-(向き::custom))にする
[天秤左値 v]を([リスト v]の(天秤左場所)番目)にする
[天秤右場所 v]を(選択場所)にする
[天秤右値 v]を([リスト v]の(天秤右場所)番目)にする

天てん秤びんで計はかる場ば所しょと値あたいを変へん数すう「天てん秤びん左ひだり場ば所しょ」・「天てん秤びん左ひだり値あたい」・「天てん秤びん右みぎ場ば所しょ」・「天てん秤びん右みぎ値あたい」に格かく納のうする

もし<((天秤左値)*(向き::custom))<((天秤右値)*(向き::custom))>なら
[リスト v]の(天秤左場所)番目を(天秤右値)で置き換える
[リスト v]の(天秤右場所)番目を(天秤左値)で置き換える
[最終交換場所 v]を(選択場所)にする
end

向むきによってを条じょう件けんを変かえ、リりスすトとの「天てん秤びん左ひだり場ば所しょ」番ばん目めと「天てん秤びん右みぎ場ば所しょ」番ばん目めの値あたいを入いれ替かえ、最さい終しゅう交こう換かん場ば所しょを格かく納のうする

[選択場所 v]を(向き::custom)ずつ変える

変へん数すう「選せん択たく場ば所しょ」を次つぎの位い置ちにする

サさンんプぷルる

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