当前位置: 首页 > wzjs >正文

江苏商城网站制作公司门户一号wordpress 主题下载

江苏商城网站制作公司,门户一号wordpress 主题下载,wordpress在页面中调用文章,技能培训有哪些科目我们有一个长度为 M 的数组,现在我们想从中找出 最小的 N 个元素。例如: int a[10] {12, 3, 5, 7, 19, 0, 8, 2, 4, 10};从中找出 最小的 4 个元素。 正确方法:使用大小为 N 的「大顶堆」 原因分析: 我们想保留最小的 4 个元素…

我们有一个长度为 M 的数组,现在我们想从中找出 最小的 N 个元素。例如:

int a[10] = {12, 3, 5, 7, 19, 0, 8, 2, 4, 10};

从中找出 最小的 4 个元素


正确方法:使用大小为 N 的「大顶堆」

原因分析:

我们想保留最小的 4 个元素,因此可以使用一个大顶堆,堆的作用是“维护最小的 N 个数”。

思路如下:

  1. 初始化:先把前 4 个数放入堆中 → 12, 3, 5, 7
    • 堆顶为最大值 12,表示目前“最小的 4 个元素”中最大的那个是 12。
  2. 从第 5 个数开始往后遍历数组,只要当前数 < 堆顶,就替换堆顶
  3. 最终堆中留下的是“最小的 4 个数”。

具体步骤(维护一个大顶堆):

初始数组:

{12, 3, 5, 7, 19, 0, 8, 2, 4, 10}

步骤:

  • 初始化堆(大顶堆):[12, 3, 5, 7] → 堆顶是 12
  • 接下来遍历:
当前元素与堆顶比较操作新堆内容(无序表示)
19> 12略过[12, 3, 5, 7]
0< 12删除 12,插入 0[7, 3, 5, 0]
8> 7略过[7, 3, 5, 0]
2< 7删除 7,插入 2[5, 3, 2, 0]
4< 5删除 5,插入 4[4, 3, 2, 0]
10> 4略过[4, 3, 2, 0]

最终堆中元素:[0, 2, 3, 4]


如果用小顶堆会怎么样?

假如你误用了小顶堆,初始堆是 [3, 12, 5, 7],堆顶是 3。

你遍历后面的元素时,堆顶一直是最小的那个,永远不会被替换掉。

问题是:你不知道当前 4 个是不是最小的 4 个,因为最大值还留在里面!

你得存下所有 M 个元素,再从小顶堆中取前 N 个,等于多维护了不必要的 M - N 个元素,效率大大降低。


总结口诀:

🔹 找最小的 N 个数 → 用大小为 N 的大顶堆,因为你要踢走大的。
🔹 找最大的 N 个数 → 用大小为 N 的小顶堆,因为你要踢走小的。


http://www.dtcms.com/wzjs/789624.html

相关文章:

  • 衡阳市网站建设网站如果不备案
  • 河南有名的做网站公司有哪些网站建设中 动态图片
  • 营销型网站建设区别自己怎样建立网站
  • 崇州网站建站个人网站可以做淘宝推广
  • 成都网站设计备案中心查网站
  • 商务网站建设pptwordpress 做成app
  • 电子网站建设策划模板网站关键词怎么填写
  • 网站建设全流程 知乎网站seo优化推广教程
  • 网站开发前端是什么网页制作大宝库
  • 电商网站开发主要设计内容做旅游海报的软件或是网站
  • 可以做兼职的网站有哪些工作青岛网站建设青岛
  • 中牟建设局网站广告设计公司制作
  • 佛山 两学一做 网站商旅通官网app
  • seo网站优化论文wordpress页面发布不
  • 网站内部资源推广方法西宁市精神文明建设网站
  • 瓜果蔬菜做的好的电商网站手机 写wordpress
  • 个人电子邮件注册网站申请wordpress可视化模板编辑器
  • 建站之星授权宾馆的网站回款如何做分录
  • 进一步加强门户网站建设的通知网站虚拟服务器
  • 网站建设与维护报告总结国际消息新闻
  • 网站设计原理网络运营托管
  • 企业网站制作找什么人扬子市建设局网站
  • python做网站 教育营销推广型网站
  • 国际空间站vs中国空间站如何增加网站关键词密度
  • 做网站前端用什么关键词排名优化网站
  • 做盗版小说网站犯法吗小型微利企业所得税优惠政策
  • 中国建设网官方网站狗年纪念币网线制作注意事项
  • 4s店网站建设计划极品教师韩剧在线观看第一集
  • 建个网站费用wordpress 备案信息
  • 网站建设怎样回答客户问题郑州热门网络推广免费咨询