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

网站建设模拟实验报告企业erp系统

网站建设模拟实验报告,企业erp系统,学而思的网站哪里做的,青岛网站设计软件我们有一个长度为 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/832287.html

相关文章:

  • 群晖网站建设中山网站建设案例
  • 红酒专业网站建设电子商务网站的建设步骤有
  • 手机网站 分享按钮手机怎么提升网站流量
  • 网站设计机构排行榜最专业的车网站建设
  • 深圳企业推广网站排名mvc5 网站开发美學 pdf
  • 珠海市住房建设局网站吉林做网站找谁
  • 网站seo排名优化软件建立网站和小程序需要多少钱
  • ktv支付订房网站模板wordpress初始化
  • 石家庄市新华区建设局网站沅江网站设计
  • 衡水做网站网上购物系统
  • 定制网站和模板网站的区别怎么制作网站域名
  • 网站建设培训哪家好自助建网站软件平台
  • 南昌高端网站开发费用表网站加速
  • 怎么查网站接入商企业电商网站优化
  • 响应试企业网站淘宝客网站怎么做的人少了
  • 郑州网站搜索排名专做排名的网站
  • 站长之家网址查询做国外进口衣服的网站好
  • 纯英文网站建设指数是指什么
  • 北京网站主题制作网站建设服务费属于什么科目
  • 工会门户网站建设需求ui培训设计哪里好
  • 学习做网站什么是广告艺术设计
  • 广州建设工程交易中心网站徐州网站设计制作建设
  • 南京市建设中心网站wordpress占用带宽
  • 免费网站开发模板网站提高内容的丰富度创意
  • 动漫设计与制作图建站到网站收录到优化
  • 企业网站的必要性哈尔滨网站开发渠道
  • 大学生创业服务网站建设方案项目书南通建设工程造价信息网站
  • 英语做美食网站如何查看一个网站是不是用h5做的
  • 网站正在建设中 文案网络规划设计师自学能通过么
  • 做PPT不错的网站有哪些做网站需要多少钱平邑