复杂排序---堆排序
排序 复杂 --- 堆排序
2023-06-13 09:16:10 时间
function heapSort(array) {
function swap(array, i, j) {
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
function maxHeapify(array, index, heapSize) {
var iMax,
iLeft,
iRight;
while (true) {
iMax = index;
iLeft = 2 * index + 1;
iRight = 2 * (index + 1);
if (iLeft < heapSize && array[index] < array[iLeft]) {
iMax = iLeft;
}
if (iRight < heapSize && array[iMax] < array[iRight]) {
iMax = iRight;
}
if (iMax != index) {
swap(array, iMax, index);
index = iMax;
} else {
break;
}
}
}
function buildMaxHeap(array) {
var i,
iParent = Math.floor(array.length / 2) - 1;
for (i = iParent; i >= 0; i--) {
maxHeapify(array, i, array.length);
}
}
function sort(array) {
buildMaxHeap(array);
for (var i = array.length - 1; i > 0; i--) {
swap(array, 0, i);
maxHeapify(array, 0, i);
}
return array;
}
return sort(array);
}
相关文章
- SQL | 窗口函数 row number + partition by 排序
- 选择排序算法(C语言实现)[通俗易懂]
- JS写睡眠排序
- python冒泡排序算法代码_python用冒泡法对10个数排序
- Python复杂排序闯5关,你能闯到第几关?
- 【拿捏链表(Ⅱ)】—Leetcode删除排序链表中的重复元素
- 【错误记录】Java 中 ArrayList 排序 ( 使用 Comparator 接口时注意 compare 返回值是 -1 和 +1 )
- hivesql 实现collect_list内排序
- SQLServer 错误 41396 该排序操作超出了缓冲区限制。 存储过程执行已中止。 有关详细信息,请查阅 SQL Server 联机丛书。 故障 处理 修复 支持远程
- 常见排序算法及对应的时间复杂度和空间复杂度详解编程语言
- MySQL查询结果序号排序分析(mysql查询序号)
- Oracle中使用降序排序实现数据从高到低的排序(oracle中降序排序)
- Oracle中文音排序 突破挑战把握发展单位(oracle 中文音排序)
- JavaScript随机排序(随即出牌)
- PHP数组排序函数合集以及它们之间的联系分析