画面の右下隅に矢印が表示されたら、任意の場所をクリックして先へ進んでください。 ここでは、ヒープソートと呼ばれるソートアルゴリズムを用いて、数値のリストを最小から最大の順にソートする方法を説明します。 また、ヒープの概念、より具体的には最大ヒープについても説明します。 最小ヒープという概念もあります。これは同じ概念ですが、すべてのノードの子ノードは親ノードよりも大きくなければなりません。 ヒープ化手順を含む、構築済みのヒープソートアルゴリズムについては、本書の後半をご覧ください。 ツリー内のどのノードが子ノードを持つ最後のノードであるかを判断する方法と、「ルートノードのインデックスが 0 の場合」という説明に気づいたかもしれません。0 から開始するのは、多くの現代のプログラミング言語が配列の最初の項目を 0 番目の項目、つまりインデックス 0 の項目と呼ぶためです。これらは 0 インデックス配列と呼ばれます。一方、Scratchでは簡潔にするために、リストの最初の項目のインデックスを1とします。つまり、Scratchのリストは1から始まるインデックスです。1から始まるインデックスのツリーで子を持つ最後のノードを取得する関数はそれほど変わりませんが、切り捨てるのではなく切り上げる(天井演算を使用する)必要があります。 これらのアルゴリズムは一般的な研究から学びましたが、この情報を分かりやすく説明し、デモも提供してくれたYouTubeのudiprodさんの動画に特に感謝いたします。きっと役に立つと思います。動画はこちらです:https://scratch.mit.edu/discuss/youtube/H5kAcmGOn4Q/ わからないところがあれば多分お答えします私の知ってる、使えるソート集 bubble_バブル shaker_シェーカー odd-even_奇偶転置 comb_コム gnome_ノーム selection_選択 heep_ヒープ Insertion_挿入 shell_シェル merge_マージ quick_クイック