Example 1: heap sort
// @see https://www.youtube.com/watch?v=H5kAcmGOn4Q function heapify(list, size, index) { let largest = index; let left = index * 2 + 1; let right = left + 1; if (left < size && list[left] > list[largest]) { largest = left; } if (right < size && list[right] > list[largest]) { largest = right; } if (largest !== index) { [list[index], list[largest]] = [list[largest], list[index]]; heapify(list, size, largest); } return list; } function heapsort(list) { const size = list.length; let index = ~~(size / 2 - 1); let last = size - 1; while (index >= 0) { heapify(list, size, --index); } while (last >= 0) { [list[0], list[last]] = [list[last], list[0]]; heapify(list, --last, 0); } return list; } heapsort([4, 7, 2, 6, 4, 1, 8, 3]);
Example 2: heap sort name meaning
A sorting algorithm that works by first organizing the data to be sorted into a special type of binary tree called a heap. The heap itself has, by definition, the largest value at the top of the tree.
Comments
Post a Comment