js实现的大根堆算法(基于数组的二叉树)
来源:互联网 发布:java为什么这么火 编辑:程序博客网 时间:2024/06/08 00:00
function buildHeap(data) { var i = Math.floor((data.length -1)/2); while(i) { transfer(data,i,data.length-1); i--; } transfer(data,i,data.length-1); } function transfer(data, i, len) { var left = 2*i + 1; var right = 2*i+ 2; var max = i; var temp; if (i > Math.floor(len/2)) { return; } if (left <= len && data[left] > data[max]) { max = left; } if (right <= len && data[right] > data[max]) { max = right; } if (max !== i) { temp = data[i]; data[i] = data[max]; data[max] = temp; transfer(data, max, len); } } function heapSort(data) { if (data.length === 1) { return data; } var i = data.length - 1; var temp; buildHeap(data); console.log(data) while(i > 0) { temp = data[i]; data[i] = data[0]; data[0] = temp; transfer(data, 0, i - 1); i--; } return data; } function getData() { var arr = []; var i = 0; while(i < 10) { arr.push(~~(Math.random() * 100 )); i++; } return arr; } var data = getData()//[50, 89, 57, 19, 68, 56, 49, 45, 32, 48]; console.log(data); console.log(heapSort(data));
阅读全文
0 0
- js实现的大根堆算法(基于数组的二叉树)
- 基于js 的数组去重算法
- js代码实现二叉查找树的算法
- 二叉树的数组实现
- [c++]基于数组的二叉树遍历
- 基于数组二分查找算法的实现
- js实现的大根堆算法(基于链式的m叉树)
- 二叉树的表示(基于一维数组)
- 基于Python的二叉树遍历算法
- 二叉树的算法实现
- 平衡二叉树的数组表示算法
- 基于二叉树和数组实现限制长度的最优Huffman编码
- 堆-A-基于完全二叉树实现,并且由数组存储的堆
- 基于Java实现的基本二叉树
- 基于Java的二叉树实现
- 树--二叉树的数组实现
- 静态数组实现的二叉搜索树
- 二叉搜索树的数组实现
- 共享程序集和强命名程序集
- 七周七并发模型 | 读后感
- C++11学习
- Unity 使用xLua遇到的坑
- IOC控制反转 和 DI依赖注入
- js实现的大根堆算法(基于数组的二叉树)
- [solved]Page build failed(Jekyll)
- RHCE——网络端口安全性
- asp.net mvc项目远程发布到windows server服务器
- mac os 下pip安装的权限问题解决方案
- Redis安装及通用key
- 第二天:布尔值、列表、字典和文件操作
- android webview 中使用 ajax 读取 asset 资源问题
- linux iostat io 监督