堆排序基本上是一种基于比较的排序算法。可以将其视为改进的选择排序——像该算法一样,它将其输入划分为已排序区域和未排序区域,并通过提取目标(最大或最小)元素并将其移动到已排序区域来交互式地缩小未排序区域。示例代码如下:const constructHeap = (arr, ind) => { let left = 2 * ind + 1; let right = 2 * ind + 2; let max = ind; if (left < len && arr[left] > arr[max]) { ... 阅读更多