外贸网站建设推广肥东网站建设

diannao/2026/1/16 23:56:46/文章来源:
外贸网站建设推广,肥东网站建设,wordpress图标字体不显示不出来,wordpress访问前台太慢目录 前言#xff1a; 一、Top-K问题描述#xff1a; 二、不同解决思路实现#xff1a; ①.排序法#xff1a; ②.直接建堆法#xff1a; ③.K堆法 总结#xff1a; 前言#xff1a; 上篇文章我们学习了二叉树的顺序存储结构#xff0c;并且对于实际使用中所常…目录 前言 一、Top-K问题描述 二、不同解决思路实现 ①.排序法 ②.直接建堆法 ③.K堆法 总结 前言 上篇文章我们学习了二叉树的顺序存储结构并且对于实际使用中所常用的顺序存储结构——堆的各个接口进行实现。这篇文章我们将对堆的实际应用进行更加深入的研究。 一、Top-K问题描述 Top-K问题就是求数据结合前K个最大的元素或者最小的元素一般情况下数据量较大。比如美团上的附近美食排行榜、年纪成绩排行榜等等。 而对于Top-K问题我们能想到的有三种不同的思路去解决。首先最简单直接的方式就是排序。但是如果需要处理的数据量非常大排序就不太可取了。而另外两种方法就是使用堆 用数据集合中前K个元素来建堆若要取前K个最大的元素则建小堆若要取前K个最小的的元素则建大堆。用剩余的N-K个元素依次与堆顶元素来比较不满足则替换堆顶元素最终堆中剩余的K个元素就是所求的前K个最小或者最大的元素。 二、不同解决思路实现 ①.排序法 排序法的思路很好理解就是将所有的数据进行排序再根据需求取值即可。过程中使用的排序方法就是向下调整时间复杂度是O(nlogn): //排序法 Swap(int* a, int* b) {int tmp *a;*a *b;*b tmp; } void HeapSort(int* a, int n) {for (int i 1; i n; i){Adujustup(a, i);}while ((n-1) 0){Swap(a[0], a[n - 1]);n--;Adujustdown(a, n-1, 0);} } 这种方法就相当于遍历所有的数据进行比较排序因此会将会造成大量的内存消耗和使用存在着较大的弊端。 ②.直接建堆法 直接建堆法的作用原理为建立一个大堆时间复杂度O(logn))然后取出堆顶元素并将其删除然后调整堆重复这个步骤K次。 void HeapSort(int* a, int n) {for (int i 1; i n; i){Adujustup(a, i);}for(int i0;ik;i){printf(%d,HeapTop(a));HeapPop(a);} 虽然这种算法有了一定程度的改进但是仍然没有改变再内存中进行操作的本质其操作方式仍然会造成大量内存的占用和消耗。 ③.K堆法 由于上述两种方法都是当n很大时所占用的内存将会非常大例如我们假设n为100亿此时便有1G1024Mb1024*1024Kb1024*1024*1024Byte需要使用内存将达到10byte。 于是我们就采用另外一种建堆方式——K堆法建一个大小为K的小堆。 为什么时小堆呢         因为小堆的堆顶是K的元素中最小的而我每次只需要跟堆顶比较然后淘汰K个元素中最 小的一个最后N-K比较完之后这K个元素就是TopK了。 void TestTopk(HP* p, int k) {int* arr (int*)malloc(sizeof(int) * k);int n p-size;for (int i 1; i n; i){SAdujustup(p-a, i);}for (int i 0; i k; i){arr[i] p-a[0];p-a[0] p-a[p-size - 1];p-size--;n p-size;for (int i 1; i n; i){SAdujustup(p-a, i);}}for (int i 1; i k; i){SAdujustup(arr, i);}for (int i 0; i k; i){printf(%d , arr[i]);} } 总结 到这里我们今天关于Topk问题的研究就全部结束了难度不大最主要是结合具体情况选择最合适的方法建堆。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设网络推广方案ppt网站建设廴金手指花总壹陆

一、 部署并启动 tomcat 服务器 1). 解压 apache-tomcat-7.0.11.zip 到一个非中文目录下 2). 配置一个环境变量 java_home(指向 JDK 安装的根目录) 或 jre_home 3). 通过双击 apache-tomcat-6.0.16\bin 目录下的 startup.bat, 启动服务器 4). 可以在浏览器中输入 localhost:8…

物流企业网站织梦模板wordpress 搜索 自定义

本文目录 前言一、docx 设置页眉1、完整代码2、实际效果图3、常见问题二、docx 设置页眉及对齐方式1、完整代码2、实际效果图3、常见问题①、对齐方式讲解②、字体号与Pt的对应关系三、docx设置页眉,两段文本,两端对齐1、完整代码2、实际效果图3、需要注意的问题①、为什么使…

织梦 两个网站应用市场下载安装软件

【问题描述】 小明每天都要练功,练功中的重要一项是梅花桩。 小明练功的梅花桩排列成 n 行 m 列,相邻两行的距离为 1,相邻两列的距离也为 1。 小明站在第 1 行第 1 列上,他要走到第 n 行第 m 列上。小明已经练了一段时间&#xff…

网站建设知识点的总结郑州免费建站

索引 索引的概念 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。 使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找…

网站上面的小图标怎么做的建材网站设计

1、大数据流程图 2、大数据各个环节主要技术 2.1、数据处理主要技术 Sqoop:(发音:skup)作为一款开源的离线数据传输工具,主要用于Hadoop(Hive) 与传统数据库(MySql,PostgreSQL)间的数据传递。它…

西安 网站搭建最好看的网站设计

在LabVIEW应用开发和部署过程中,确保LabVIEW版本、硬件驱动和Windows版本之间的一致性和兼容性至关重要。这不仅影响程序的稳定性和性能,还关系到项目的成功实施。本文从多角度详细分析这些因素之间的兼容性问题,并提供相关建议。 兼容性考虑…

怎么自己做网站教程设计网页公司哪里好

2019独角兽企业重金招聘Python工程师标准>>> [引言] 我们在学习Java编程的时候,如果需要开发客户端窗体类型的程序,可以使用JDK中的awt和swing库。本文开始小博老师就继续为大家演示Java窗体编程中的绘图技术,今天主要讲解绘图技术…

企业网站建设合同方案有哪些网站做团购最好

P2015 二叉苹果树 题意: 一个完全二叉树,n个点,n-1个边,每个边都有边权,问保留q个边,所能保留的最大边权是多少 题解: 树形dp dp[u][i]表示u的子树上保留i条边,至多保留的苹果数…

阜阳专业网站建设区块链网站开发

本文列举常见的java定时任务实现方式,并做一定比较。1. 循环内部sleep实现周期执行创建一个thread,run() while循环里sleep()来实现周期性执行; 简单粗暴,作为一个初学者很容易想到。public class Task1 {public static void main(String[] a…

五泉山网页设计宣传网站制作兰州优化定制

2019独角兽企业重金招聘Python工程师标准>>> Java中接口、抽象类与内部类学习 接口与内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类和抽象方法 抽象方法:仅有声明而没有方法体。 抽象类:包含一个或多个抽象方法的类&am…

网站建设合同表(书)vps如何做网站步骤

这篇文章将介绍如何使用Guava EventBus将更改发布到Java 7 WatchService检测到的目录或子目录中。 Guava EventBus是向应用程序添加发布/订阅通信的好方法。 Java 7 java.nio.file软件包中新增的WatchService用于监视目录中的更改。 由于EventBus和WatchService已在以前的文章中…

网站设置什么意思360建筑网一级消防

本文讨论了领导者在沟通过程中如何避免成为传声筒,通过筛选、处理和总结信息,在向上、向下沟通时保持相关性和真实性,提高沟通效率和效果。原文: The Dumbest Mistake Leaders Make in Communication 中层管理者作为高层领导、下属团队和其他…

网站建设活动广告网站建设 工作建议

我们知道,只要在一个Java类上加上Component、Service、Controller等注解,就可以被加载到Spring容器中,除了以上方式,加了Bean和Import好像也可以将对象添加到Spring容器中,究竟Spring是如何实现这些功能的呢&#xff1…

东莞外贸网站设计网页设计入门教学视频

一、python介绍python的创始人为吉多・范罗苏姆(Guido van Rossum)目前python主要应用领域:・云计算・WEB开发・科学运算、人工智能・系统运维・金融:量化交易,金融分析等,作为动态语言的python,语言结构清晰简单&…

绍兴网站推广福永网站建设公司

背景互联网时代的数据重要性不言而喻,任何数据的丢失都会给企事业单位、政府机关等造成无法计算和无法弥补的损失,尤其随着云计算和大数据时代的到来,数据中心的规模日益增大,环境更加复杂,云上客户群体越来越庞大&…

国外做储物柜的网站wordpress功能小工具栏

落地灯对于上班族、学生党来说真的很友好,能够提供贴合眼睛用光舒适的光度,使这些日常长时间用眼的人能够减少不良光线对眼睛造成的影响,从而科学健康的用眼! 市面上的落地灯产品越来越多,琳琅满目的产品让不少刚接触落…

环保设备网站建设模板舆情网站直接打开怎么弄

在最后的社区主题演讲后,我前往希尔顿金门大桥3/4/5观看了维克多巴生 ( Viktor Klang )的( Typesafe )“上,下,外:Akka”演讲。 巴生(Klang)是Akka的技术主管…

烟台网站制作工具什么样的网站好优化

在很多python脚本中在最后的部分会执行一个判断语句if __name__ "__main__:",之后还可能会有一些执行语句。那添加这个判断的目的何在? 在python编译器读取源文件的时候会执行它找到的所有代码,而在执行之前会根据当前运行的模块是…

织梦搬家 网站空白网站建设的平台分析

save和saveOrUpdate之间的区别是什么或save和persist之间的区别是任何Hibernate面试中常见的面试问题,就像Hibernate中get和load方法之间的区别一样。 Hibernate Session类提供了几种通过save , saveOrUpdate和persist等方法将对象保存到数据库中的方法。…

网站建设核心点tp框架做餐饮网站

ConfigurableListableBeanFactory 提供bean definition的解析,注册功能,再对单例来个预加载(解决循环依赖问题). 貌似我们一般开发就会直接定义这么个接口了事.而不是像Spring这样先根据使用情况细分那么多,到这边再合并 ConfigurableListableBeanFactory具体: 1、…