Scratch マージソート課題3

Scratch だい

だいないよう

もちいてしょうじゅんなら

かいとう

かいとうひょうする

はいけい

へんこうへんこう
定義 変数初期化

↓↓↓↓↓

定義 変数初期化
[状態 v]を[未整列]にする
[前半 v]のすべてを削除する
[後半 v]のすべてを削除する
定義 マージソート(上)(下)

↓↓↓↓↓

定義 マージソート(上)(下)
もし<(上)<(下)>なら
マージソート(上)((((上)+(下))/(2))の[切り下げ v]::operators)
マージソート(((((上)+(下))/(2))の[切り下げ v]::operators)+(1))(下)
[前半 v]のすべてを削除する
[後半 v]のすべてを削除する
[中央 v]を((((上)+(下))/(2))の[切り下げ v]::operators)にする
[前半 v]を(((中央)-(上))+(1))にする
[後半 v]を((下)-(中央))にする
[選択場所 v]を(上)にする
(前半::variables)回繰り返す
[選択値 v]を([リスト v]の(選択場所)番目)にする
(選択値)を[前半 v]に追加する
[選択場所 v]を(1)ずつ変える
end
(後半::variables)回繰り返す
[選択値 v]を([リスト v]の(選択場所)番目)にする
(選択値)を[後半 v]に追加する
[選択場所 v]を(1)ずつ変える
end
[選択場所 v]を(上)にする
[前半選択場所 v]を(1)にする
[後半選択場所 v]を(1)にする
<<([前半 v]の長さ::list)<(前半選択場所)>または<([後半 v]の長さ::list)<(後半選択場所)>>まで繰り返す
[前半選択場所 v]を([リスト v]の(前半選択場所)番目)にする
[後半選択場所 v]を([リスト v]の(後半選択場所)番目)にする
もし<(前半選択値)<(後半選択値)>なら
[リスト v]の(選択場所)番目を(前半選択値)で置き換える
[選択場所 v]を(1)ずつ変える
[前半選択場所 v]を(1)ずつ変える
でなければ
[リスト v]の(選択場所)番目を(後半選択値)で置き換える
[選択場所 v]を(1)ずつ変える
[後半選択場所 v]を(1)ずつ変える
end
end
<([前半 v]の長さ::list)<(前半選択場所)>まで繰り返す
[前半選択値 v]を([前半 v]の(前半選択場所)番目)にする
[リスト v]の(選択場所)番目を(前半選択値)で置き換える
[選択場所 v]を(1)ずつ変える
[前半選択場所 v]を(1)ずつ変える
end
<([後半 v]の長さ::list)<(後半選択場所)>まで繰り返す
[後半選択値 v]を([前半 v]の(後半選択場所)番目)にする
[リスト v]の(選択場所)番目を(後半選択値)で置き換える
[選択場所 v]を(1)ずつ変える
[後半選択場所 v]を(1)ずつ変える
end
end

かいせつ

かいせつひょうする

はいけい

へんこうへんこう
定義 変数初期化

ていへんすうしょ」がされたとき、かいする

[状態 v]を[未整列]にする
[前半 v]のすべてを削除する
[後半 v]のすべてを削除する

へんすうしょせってい

定義 マージソート(上)(下)

てい」がされたとき、かいする

もし<(上::custom)<(下::custom)>なら
end

はんが0になるまでかえ

マージソート(上)((((上)+(下))/(2))の[切り下げ v]::operators)::custom
マージソート(((((上)+(下))/(2))の[切り下げ v]::operators)+(1))(下)::custom

はんぶんずつけてをさらにする。

[前半 v]のすべてを削除する
[後半 v]のすべてを削除する
[中央 v]を((((上)+(下))/(2))の[切り下げ v]::operators)にする

ぜんはん」と「こうはん」をして、はんちゅうおうしょへんすうちゅうおうしょ」にかくのうする

[前半 v]を(((中央)-(上))+(1))にする
[後半 v]を((下)-(中央))にする
[選択場所 v]を(上)にする
(前半::variables)回繰り返す
[選択値 v]を([リスト v]の(選択場所)番目)にする
(選択値)を[前半 v]に追加する
[選択場所 v]を(1)ずつ変える
end
(後半::variables)回繰り返す
[選択値 v]を([リスト v]の(選択場所)番目)にする
(選択値)を[後半 v]に追加する
[選択場所 v]を(1)ずつ変える
end

ぜんはんぶんこうはんぶんを、ぜんはん」と「こうはん」にける

[選択場所 v]を(上)にする
[前半選択場所 v]を(1)にする
[後半選択場所 v]を(1)にする
<<([前半 v]の長さ::list)<(前半選択場所)>または<([後半 v]の長さ::list)<(後半選択場所)>>まで繰り返す
[前半選択場所 v]を([リスト v]の(前半選択場所)番目)にする
[後半選択場所 v]を([リスト v]の(後半選択場所)番目)にする
もし<(前半選択値)<(後半選択値)>なら
[リスト v]の(選択場所)番目を(前半選択値)で置き換える
[選択場所 v]を(1)ずつ変える
[前半選択場所 v]を(1)ずつ変える
でなければ
[リスト v]の(選択場所)番目を(後半選択値)で置き換える
[選択場所 v]を(1)ずつ変える
[後半選択場所 v]を(1)ずつ変える
end
end
<([前半 v]の長さ::list)<(前半選択場所)>まで繰り返す
[前半選択値 v]を([前半 v]の(前半選択場所)番目)にする
[リスト v]の(選択場所)番目を(前半選択値)で置き換える
[選択場所 v]を(1)ずつ変える
[前半選択場所 v]を(1)ずつ変える
end
<([後半 v]の長さ::list)<(後半選択場所)>まで繰り返す
[後半選択値 v]を([前半 v]の(後半選択場所)番目)にする
[リスト v]の(選択場所)番目を(後半選択値)で置き換える
[選択場所 v]を(1)ずつ変える
[後半選択場所 v]を(1)ずつ変える
end

ぜんはん」と「こうはん」をくらべてじゅんうわきする。

sb3