


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
应用C+ STL以最小堆方法解决Top K问题问题的来源我想不必多言了,很多的面试题中,以及中都有对问题的描述,以及相关的解法,写本文的目的是以C+ STL的方式用最小堆解法解决这个问题。那么什么是最小堆呢?其实最小堆是一颗特殊二叉树,其父节点的key小于其孩子节点,对!最小堆不是堆,是二叉树!最小堆解法其实可以将问题的时间复杂度缩减到nlgK,但是本文由于没有在C+ STL中找到合适的函数保持最小堆(如果用自己写代码可以做到lgk),所以必须每次重建最小堆(如果您有更好的建议,欢迎指点),因此,时间复杂度为nk,另外本文假设kn.#include#include#include#includeusingnamespacestd;voidTopKAlgorithm(intinputArray,intnInputLength,intnOutputLength )/construct the minimum heap the size is K vector vec(inputArray,inputArray+nOutputLength); make_heap (vec.begin(),vec.end(), greater();for(inti=nOutputLength; i= vec0) vec0 = inputArrayi;/此处其实只需要保持堆的性质即可,并不需要重建堆 make_heap (vec.begin(),vec.end(), greater(); for(inti=0; inOutputLength; i+) inputArrayi=veci; intmain ()intInputValues = 10,200,30,5,15,110,2,42,6,36;TopKAlgorithm(InputValues, 10, 3);cout The top K Values are:;for(unsignedi=0; i3; i+) cout InputValuesi;cout endl;return0;总结本文以最小堆解法解决了TOP K问题,完全采用C+的STL原生函数加以实现,其中没有手动加入任何操作最小堆的代码,另外,本文的一个遗憾是第二次
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北汽知识培训集团课件
- 校园食堂食品安全知识培训课件
- 校园消防知识培训课件新闻稿
- 校园消防安全知识培训
- 物业人民调解员考试试题及答案
- 国画荷花面试题及答案
- 电气制图考试题及答案
- java算法排序面试题及答案
- 法院审判面试题及答案
- 石油普工考试试题及答案
- 知识题库-人社练兵比武竞赛测试题及答案(八)
- SYT 0452-2021 石油天然气金属管道焊接工艺评定-PDF解密
- 《育婴师培训》-课件:环境消毒基础知识
- 煤矿掘进支护工培训课件
- 关于规范村级财务管理的审计建议
- 长安欧尚A800说明书
- 火灾应急预案组织架构图
- FANUC伺服电机选型计算手册-v1
- 小学科学项目化学习活动作业方案案例设计《设计制作动力小车项目化学习》
- 山东省济宁市第十五中学2023-2024学年(五四学制)六年级上学期第一次月考语文试题
- 船舶油污应急计划(标准版)
评论
0/150
提交评论