Snap!再入門
ScratchにはないSnap!独自の機能について説明したページを用意した。2023.12.8
Snapでリストのソートをしてみます。
変数 データ ランダムに1~10の数値を10個用意
numbers from 1 to 10 で 1 2 3 4 5 6 7 8 9 10 のリスト生成
このリストをmapで10個のランダム値に変換
選択ソート for i とfor jの2重ループで並べ替え前のリストの先頭をリストの最小値と順に入れ替えながら並べ替える
変数 データとは別に並べ替えた値を保持する変数 昇順リスト を用意
昇順リストに並べ替え対象のランダム値よりも大きな値100を入れておく
挿入ソート データから値を一つづつピックアップして、昇順リストの先頭から挿入する位置を検索して挿入
挿入ソートをfor each ブロックを使ってシンプルにできる。
for eachでは i 番目のデータ を item に順に入れて繰り返し処理する。
リスト処理ブロックを組み合わせて挿入ソートする例
データの値を1つづつピックアップして、昇順リストの挿入位置を次のブロックを使って求める。
find first item 条件 item の値よりも大きな要素を検索
index of 検索結果の値の位置
リスト処理ライブラリ List Utilities を追加する
sortブロックでソート結果を求める
昇順や降順のソート条件は比較演算子ブロックで与えることができる