Scratch バケットソート課題3
課題内容
スペースキーでリストをバケットソートを用いて昇順に並び替え
解答
解答を表示する
背景
変更①変更②変更③
定義 変数初期化
↓↓↓↓↓
定義 変数初期化 [状態 v]を[未整列]にする
定義 バケットソート
↓↓↓↓↓
定義 バケットソート [選択場所 v]を(1)にする ([リスト v]の長さ::list)回繰り返す [選択値 v]を([リスト v]の(選択場所)番目)にする [バケツ選択場所 v]を(((選択値)-(最小値))+(1))にする [バケツ選択文字列 v]を([バケツ v]の(バケツ選択場所)番目)にする [バケツ v]の(バケツ選択場所)番目を((バケツ選択文字列)と((選択値)と[|]))で置き換える [選択場所 v]を(1)ずつ変える end バケツ取り出し::custom
定義 バケット取り出し
↓↓↓↓↓
定義 バケツ取り出し [バケツ選択場所 v]を(1)にする [選択場所 v]を(1)にする ([バケツ v]の長さ::list)回繰り返す [バケツ選択文字列 v]を([バケツ v]の(バケツ選択場所)番目)にする もし<<(バケツ選択文字列)=[|]>ではない>なら [位置 v]を(2)にする [数値 v]を()にする [バケツ選択文字列長 v]を((バケツ選択文字列)の長さ::operators)にする (バケツ選択文字列長)回繰り返す [文字 v]を((バケツ選択文字列)の(位置)番目の文字)にする もし<<(文字)=[|]>ではない>なら [数値 v]を((数値)と(文字))にする でなければ [リスト v]の(選択場所)番目を(数値)で置き換える [選択場所 v]を(1)ずつ変える [数値 v]を()にする end [位置 v]を(1)ずつ変える end end [バケツ選択場所 v]を(1)ずつ変える end
解説
解説を表示する
背景
変更①変更②変更③
定義 変数初期化
定義「変数初期化」が呼び出されたとき、スクリプトを開始する
[状態 v]を[未整列]にする
変数の初期設定
定義 バケットソート
定義「バケットソート」が呼び出されたとき、スクリプトを開始する
[選択場所 v]を(1)にする ([リスト v]の長さ::list)回繰り返す [選択値 v]を([リスト v]の(選択場所)番目)にする [バケツ選択場所 v]を(((選択値)-(最小値))+(1))にする [バケツ選択文字列 v]を([バケツ v]の(バケツ選択場所)番目)にする [バケツ v]の(バケツ選択場所)番目を((バケツ選択文字列)と((選択値)と[|]))で置き換える [選択場所 v]を(1)ずつ変える end バケツ取り出し::custom
1番目から値に対応するリスト「バケツ」の場所に入れる。
同じ値でも複数個入れられるように「|」で区切る
定義 バケット取り出し
定義「バケット取り出し」が呼び出されたとき、スクリプトを開始する
[バケツ選択場所 v]を(1)にする [選択場所 v]を(1)にする ([バケツ v]の長さ::list)回繰り返す [バケツ選択文字列 v]を([バケツ v]の(バケツ選択場所)番目)にする もし<<(バケツ選択文字列)=[|]>ではない>なら [位置 v]を(2)にする [数値 v]を()にする [バケツ選択文字列長 v]を((バケツ選択文字列)の長さ::operators)にする (バケツ選択文字列長)回繰り返す [文字 v]を((バケツ選択文字列)の(位置)番目の文字)にする もし<<(文字)=[|]>ではない>なら [数値 v]を((数値)と(文字))にする でなければ [リスト v]の(選択場所)番目を(数値)で置き換える [選択場所 v]を(1)ずつ変える [数値 v]を()にする end [位置 v]を(1)ずつ変える end end [バケツ選択場所 v]を(1)ずつ変える end
リスト「バケツ」の1番目から入れていく
文字列の長さと「|」で複数個にも対応する