When the arrow appears in the bottom-right corner of the screen, click anywhere to advance. This explains how you would go about sorting a list of numbers in order from smallest to largest, using a sorting algorithm called heap sort. We also explain the concept of a heap, or more specifically, a max heap. There's also such a thing as a min heap, which is the same concept except that every node's child must be greater than their parent. See inside for a prebuilt heap sort algorithm, including the heapify procedure! You might notice I explained how to tell what node in a tree is the last one with children, and how I said "if the index of the root node is 0". I start at 0 because many modern programming languages refer to the first item in an array as the 0th item, or the item at index 0. These are called 0-indexed arrays. Scratch, on the other hand, for simplicity, uses 1 as the index of the first item in a list, so Scratch lists are 1-indexed. The function for getting the last node with children in a 1-indexed tree isn't too different, you just have to round up (use the ceiling operation) instead of down. I learn these algorithms from general research, but I want to give a special thanks to a video by udiprod on YouTube for simplifying this information with a demonstration. You might find it helpful. Here it is: https://scratch.mit.edu/discuss/youtube/H5kAcmGOn4Q/