Scratch シェルソート課題3

Scratch だい

だいないよう

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

かいとう

かいとうひょうする

はいけい

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

↓↓↓↓↓

定義 変数初期化
[状態 v]を[未整列]にする
[間隔 v]を((([リスト v]の長さ::list)/(2))の[切り下げ v]::operators)にする
[挿入元値 v]を(0)にする
[選択値 v]を(0)にする
定義 シェルソート

↓↓↓↓↓

定義 シェルソート
<(間隔)=(0)>まで繰り返す
[挿入元場所 v]を((間隔)+(1))にする
(([リスト v]の長さ::list)-(間隔))回繰り返す
[挿入元値 v]を([リスト v]の(挿入元場所)番目)にする
[選択場所 v]を((挿入元場所)-(間隔))にする
[選択値 v]を([リスト v]の(選択場所)番目)にする
<<(選択場所)<(1)>または<(選択値)<(挿入元値)>>まで繰り返す
[リスト v]の((選択場所)+(間隔))番目を(選択値)で置き換える
[選択場所 v]を((選択場所)-(間隔))ずつ変える
[選択値 v]を([リスト v]の(選択場所)番目)にする
end
[リスト v]の((選択場所)+(間隔))番目を(挿入元値)で置き換える
[挿入元場所 v]を(1)ずつ変える
end
[間隔 v]を(((間隔)/(2))の[切り下げ v]::operators)にする
end

かいせつ

かいせつひょうする

はいけい

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

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

[状態 v]を[未整列]にする
[間隔 v]を((([リスト v]の長さ::list)/(2))の[切り下げ v]::operators)にする
[挿入元値 v]を(0)にする
[選択値 v]を(0)にする

へんすうしょせってい

定義 シェルソート

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

<(間隔)=(0)>まで繰り返す
end

かんかくが0になるまでかえ

[挿入元場所 v]を((間隔)+(1))にする

どうもとしょへんすうそうにゅうもとしょ」をかくのうする

(([リスト v]の長さ::list)-(間隔))回繰り返す
end

さいまでかえ

[挿入元値 v]を([リスト v]の(挿入元場所)番目)にする
[選択場所 v]を((挿入元場所)-(間隔))にする
[選択値 v]を([リスト v]の(選択場所)番目)にする

へんすうそうにゅうもとしょ」の1つまえしょあたいへんすうせんたくしょ」・「せんたく」にかくのうする

<<(選択場所)<(1)>または<(選択値)<(挿入元値)>>まで繰り返す
[リスト v]の((選択場所)+(間隔))番目を(選択値)で置き換える
[選択場所 v]を((選択場所)-(間隔))ずつ変える
[選択値 v]を([リスト v]の(選択場所)番目)にする
end

へんすうせんたく」がへんすうそうにゅうもと」より大きくなるまでうわきしてかえ

[リスト v]の((選択場所)+(間隔))番目を(挿入元値)で置き換える

へんすうそうにゅうもと」をへんすうせんたく」がへんすうそうにゅうもと」よりおおきくなるまえかくのうする

[挿入元場所 v]を(1)ずつ変える

へんすうそうにゅうもとしょ」をつぎにする

[間隔 v]を(((間隔)/(2))の[切り下げ v]::operators)にする

へんすうかんかく」をつぎかんかくにする

sb3