练习1——贪心算法总结

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解

 

  实现贪心的具体步骤是:

  • Begin 从问题的某一初始解出发;
  • while 能朝给定总目标前进一步 do
  • 求出可行解的一个解元素;
  • 由所有解元素组合成问题的一个可行解

    从我的理解来看,目前遇到的贪心问题分为三种:背包问题,区间问题,Huffman编码问题

 

    背包问题属于比较简单的那种类型,上课老师讲的例题就是这种类型,这类问题要么以物品数量为标准,要么以性价比为标准,通过一次For循环即可求解。

    区间问题是一个难点,ProblemA等题是这类问题的代表,区间问题的特点是较难找出一个求最优解的标准,标准找不出,问题就很难解决,以ProblemA为例,解题的关键是理解串行和并行,并将通过次数最多的路段的总时间作为最优解。

    Huffman编码问题,是一类比较特殊的贪心问题,Huffman编码从通俗上讲,就是利将固定二进制位的字符编码,变成有弹性位数的编码,出现频率越高的字符二进制的位数越短,反之则越高,通过这种方式来压缩文本,在题目中,这种问题的解决方式是利用优先队列容器,优先的标准是频率,然后将字符频率排序并入队,每次取出两个,将频率相加再次入队,直到队列为空为止。

 

  这就是我目前的理解,如果以后有了更深的理解,会在此继续补充的。

 

  经过最近几周的刷题训练,我经历了AC时的喜悦,也经历了一整天做不出一个题的悲伤。我明白了ACM事业任重而道远,要想在这条路上走得远,就必须要肯动脑,肯吃苦。

 

 

 

 

  欢迎各位道友批评和指正。

  代码托管地址:https://github.com/WiseDoge/ACM_Practice_One

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值