Scratch クイックソート課題3

Scratch だい

だいないよう

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

かいとう

かいとうひょうする

はいけい

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

↓↓↓↓↓

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

↓↓↓↓↓

定義 クイックソート(上)(下)
もし<(上)<(下)>なら
[前半 v]のすべてを削除する
[後半 v]のすべてを削除する
[ピボット場所 v]を(上)にする
[ピボット値 v]を([リスト v]の(ピボット場所)番目)にする
[選択場所 v]を(上)にする
(((下)-(上))+(1))回繰り返す
[選択値 v]を([リスト v]の(選択場所)番目)にする
もし<(選択値)<(ピボット値)>なら
(選択値)を[前半 v]に追加する
でなければ
(選択値)を[後半 v]に追加する
[選択場所 v]を(1)ずつ変える
end
end
[選択場所 v]を(上)にする
[前半選択場所 v]を(1)にする
[後半選択場所 v]を(1)にする
([前半 v]の長さ::list)回繰り返す
[前半選択値 v]を([前半 v]の(前半選択場所)番目)にする
[リスト v]の(選択場所)番目を(前半選択値)で置き換える
[選択場所 v]を(1)ずつ変える
[前半選択場所 v]を(1)ずつ変える
end
(選択場所)を[ピボット v]に追加する
([後半 v]の長さ::list)回繰り返す
[後半選択値 v]を([後半 v]の(後半選択場所)番目)にする
[リスト v]の(選択場所)番目を(後半選択値)で置き換える
[選択場所 v]を(1)ずつ変える
[後半選択場所 v]を(1)ずつ変える
end
クイックソート(上)(([ピボット v]の([ピボット v]の長さ::list)番目)-(1))
クイックソート(([ピボット v]の([ピボット v]の長さ::list)番目)+(1))(下)
[ピボット v]の([ピボット v]の長さ::list)番目を削除する
end

かいせつ

かいせつひょうする

はいけい

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

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

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

へんすうしょせってい

定義 クイックソート(上)(下)

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

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

はんが0になるまでかえ

[前半 v]のすべてを削除する
[後半 v]のすべてを削除する
[ピボット場所 v]を(上)にする
[ピボット値 v]を([リスト v]の(ピボット場所)番目)にする

ぜんはん」と「こうはん」をして、はんさいしょしょあたいへんすうしょ」・「」にかくのうする

[選択場所 v]を(上)にする
(((下)-(上))+(1))回繰り返す
[選択値 v]を([リスト v]の(選択場所)番目)にする
もし<(選択値)<(ピボット値)>なら
(選択値)を[前半 v]に追加する
でなければ
(選択値)を[後半 v]に追加する
[選択場所 v]を(1)ずつ変える
end

へんすう」をじゅんに、ぜんはん」と「こうはん」にける

[選択場所 v]を(上)にする
[前半選択場所 v]を(1)にする
[後半選択場所 v]を(1)にする
([前半 v]の長さ::list)回繰り返す
[前半選択値 v]を([前半 v]の(前半選択場所)番目)にする
[リスト v]の(選択場所)番目を(前半選択値)で置き換える
[選択場所 v]を(1)ずつ変える
[前半選択場所 v]を(1)ずつ変える
end
(選択場所)を[ピボット v]に追加する
([後半 v]の長さ::list)回繰り返す
[後半選択値 v]を([後半 v]の(後半選択場所)番目)にする
[リスト v]の(選択場所)番目を(後半選択値)で置き換える
[選択場所 v]を(1)ずつ変える
[後半選択場所 v]を(1)ずつ変える
end

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

クイックソート(上)(([ピボット v]の([ピボット v]の長さ::list)番目)-(1))::custom
クイックソート(([ピボット v]の([ピボット v]の長さ::list)番目)+(1))(下)::custom
[ピボット v]の([ピボット v]の長さ::list)番目を削除する

ぜんはんぶんこうはんぶんをさらにする。

sb3