使用堆实现Top K 算法 JS 实现
来源:互联网 发布:google json插件 编辑:程序博客网 时间:2024/05/16 11:45
1. 使用堆算法实现Top,时间复杂度为 O(LogN)
2. 调用K次堆实现,时间复杂度为 O(K * LogN)
3.测试
function top(arr,comp){if(arr.length == 0){return ;}var i = arr.length / 2 | 0 ;for(;i >= 0; i--){if(comp(arr[i], arr[i * 2])){exch(arr, i, i*2);}if(comp(arr[i], arr[i * 2 + 1])) {exch(arr, i, i*2 + 1);}}return arr[0];}function exch(arr,i,j){var t = arr[i];arr[i] = arr[j];arr[j] = t;}
2. 调用K次堆实现,时间复杂度为 O(K * LogN)
function topK(arr,n,comp){if(!arr || arr.length == 0 || n <=0 || n > arr.length){return -1;}var ret = new Array();for(var i = 0;i < n; i++){var max = top(arr,comp);ret.push(max);arr.splice(0,1);}return ret;}
3.测试
var ret = topK(new Array(16,22,91,0,51,44,23),3,function (a,b){return a < b;});console.log(ret);
0 0
- 使用堆实现Top K 算法 JS 实现
- 算法——TOP K问题最小堆实现
- 算法——TOP K问题最小堆实现扩展
- Top K算法的实现
- 转 -- Top K算法问题的实现
- Top K算法问题的实现
- Top K算法问题的实现
- 【原创】TOP k算法的简单实现
- 用scala语言实现并行堆排序(top k)
- TOP-K问题-堆排序和快排实现
- mapreduce top K实现
- mapreduce实现Top K
- 利用堆实现k-路归并算法
- 最小堆算法求Top K
- 堆排序及top K 算法
- 寻找最大的K个数,Top K问题的堆实现
- 海量数据Top K算法(C实现)
- 程序员编程艺术:Top K算法问题的实现
- 使用OSCache优化程序性能
- Android布局的各种对齐问题
- GNU Linux syslog守护进程简介及syslog日志写入例子
- spring,struts,整合后整合iBATIS
- 庆师模拟7
- 使用堆实现Top K 算法 JS 实现
- MySQL多实例的实现#线上服务器
- MyEclipse中SVN基本应用
- ios单例深入分析
- Ubuntu挂载新硬盘
- WebService
- VirtualBox 4.3.6上安装CentOS 6.5
- web端测试和移动端测试的区别小记
- 第16周项目2统计字符串的长度