极差的贪心算法实现PPT课件_第1页
极差的贪心算法实现PPT课件_第2页
极差的贪心算法实现PPT课件_第3页
极差的贪心算法实现PPT课件_第4页
极差的贪心算法实现PPT课件_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

极差的贪心算法实现 数列极差问题描述 给定n个正整数数列 进行如下操作 每次删去两个数a和b 添加一个数a b 1 直到只剩一个数N 在所有这样的N中 有一个最大Max和最小Min M Max Min是极差 设计程序计算M 用贪心算法算法思想 对于给定的数列主要问题是如何求最大值和最小值 设有三个数xn2 n3 所以可以得到结论 优先做数列较小值的 a b 1 运算得到的值大 优先做数列中较大的值的 a b 1 运算得到的值小 所以贪心算法可以这样设计 先将数列从小到大排列 选出数列中最小的两个数m n 做n2 m n 然后把m n从数列中删除 n1有序插入到数列中 重复上述过程 直到数列中只剩下一个数字 该数字就是所求的最大值 选出数列中最大的两个数a b做n2 a b 然后把a b从数列中删除 n2有序插入到数列中 重复上述过程 直到数列中只剩下一个数字 该数字就是所求的最小值 最后n1 n2就是极差 includeusingnamespacestd constSize 6 voidChange int a int b inttemp temp a a b b temp voidinput int array cout array array voidQuickSort int array intlen if len 1 intnum 0 i 0 j len 1 temp 0 while i j i 0 j len 1 temp 0 从后往前找比关键数大的数 交换for j j num j if array num array j Change 从前往后查比关键数小的数 交换for i i num i if array num array i Change longMin int a intt a Size 1 for inti Size 2 i 0 i t t a i 1 returnt 最大的两个数相乘还是最大的 longMax int a intb Size t for inti 0 i Size i b i a i for intj 1 j Size j t b j 1 b j 1 for intm j 1 m Size m if t b m m Size break elseb m 1 b m b m 1 t returnb Size 1 intmain intn Size list Size max min i input list QuickSort list Size max Max list min Min list cout max max endl cout min min endl cout 极差M max min endl return0 测试例 1 1 2 3 4 5 6 运行结果 输入6个整数 123456max 1282min 754极差M 528 2 2 3 4 5 6 7运行结果 输入6个整数 234567m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论