贪心算法学习笔记

本文介绍了贪心算法的基本思想,通过拆分问题并寻找局部最优解来求解整体问题。讨论了Dijskstra、Prim、Kruskal等经典算法,并结合发工资问题阐述贪心算法的应用。在发工资问题中,提出让大面额纸币优先的策略,虽然递归贪心算法在部分情况下可能导致找零,但仍然是有效的解决方案。作者分享了个人的思考和代码实现,对于代码存在的错误表示疑惑并邀请读者指正。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

贪心算法学习笔记(发工资)

贪心算法

贪心算法又叫贪婪算法,主要思路即采用局部最优解。把一个问题拆分成若干个子问题。通过多段步骤,实现整体问题的最优解。基本的算法中贪心著名的贪心算法包括: Dijskstr单源图最短路径算法、Prim和Kruskal最小生成树算法Huffman编码简单压缩算法等。要注意的是,贪心算法属于比较短视的算法,在一些问题上并不能提出这个问题的最优解,只是能提出一个可以接受的解(迪杰斯特拉单源图最短路径算法)

发工资问题

我在C语言网(www.dotcpp.com)找到的算法题,用于举例,题目如下:

作为程序猿,最盼望的日子就是每月的9号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵

但是对于公司财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小李最近就在考虑一个问题:如果每个员工的工资额都知道,最少需要准备多少张人民币,才能在给每位员工发工资的时候都不用员工找零呢?

这里假设程序猿的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。

经典算法

很明显,我们需要让100元纸币最多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值