栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

golang 求两个数最小值

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

golang 求两个数最小值

最小值、最大值统计

给到长度为N的数组a,统计数组a的最小值、最大值很常见。

找到的最小值
  • 初始化最小值,然后遍历a, 分别与最小值比较,看情况更新最小值
  • O(N)

找到数组a的最大值
  • 与最小值思路相同
  • O(N)

同时找到最小值、最大值
  • 方法I:按之前的思路,遍历a, 分别与最小值最大值比较,看情况更新 O(2N) = O(N)
  • 方法II:将a中的元素配对配对元素 (a0, a1)内部比较一次,得到min(a0, a1), max(a0, a1)min(a0, a1)与最小值比较, max(a0, a1)与最大值比较O(3N/2)=O(N), 常数因子从2优化到1.5

min, max, top2统计

找到最小值、第二最小值
  • 方法I:比较2N次,分别获取两个值
  • 方法II:O(N+logN)

和淘汰赛赛制类似:第一轮每两个数对抗,最小者获胜;第一轮冠军中,每两个数对抗,最小者获胜;依次类推,找到最终的冠军,即最小值 O(N)

从和冠军比赛的log(N)只队伍中,选出最小值,即亚军,即第二小值淘汰赛制中,亚军一定输给过冠军。反证法:如果亚军未输给过冠军,假设输给过B队伍,则亚军


如何找到数组的Top k?尽请期待,提示和淘汰赛类似,通过堆排序实现。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/945621.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号