贪婪算法
算法 贪婪
2023-09-11 14:15:52 时间
算法思路:
贪婪算法基本思路 : 从问题的某一个初始解出发逐步逼近给定的目标,以尽快可能快地求得更好的解。
当达到算法中的某一步不能再继续前进时,就停止算法,给出近似解。
该算法存在以下问题:
- 不能保证最后的解是最优的。
- 不能用来求最大或最小解问题。
- 只能求满足某些约束条件的可行解的范围
例题:
代码如下:
#include<stdio.h>
#define MAXN 9
int parvalue[MAXN]={10000,5000,1000,500,200,100,50,20,10};
//100 50 10 5 2 1 0.5 0.2 0.1
int num[MAXN]={0};
int exchange(int n)
{
int i,j;
for(i=0;i<MAXN;i++)
if(n>parvalue[i])break;//找到比n小的最大面额
while( n>0 && i<MAXN )
{
if(n>=parvalue[i])
{
n=n-parvalue[i];
num[i]++;
}
else if(n<10 && n>=5)// 0.05<n<0.1
{
num[MAXN-1]++;
break;
}
else
i++;
}
return 0;
}
int main(void)
{
int i;
float m;
printf("请输入要找零的金额: ");
scanf("%f",&m);
exchange((int)100*m);
printf("\n%.2f元零钱的组合为:\n",m);
for(i=0;i<MAXN;i++)
{
if(num[i]>0)
printf("%6.2f: %d张\n",(float)parvalue[i]/100.0,num[i]);
}
return 0;
}
相关文章
- c# 二进制或算法实现枚举的HasFlag函数
- 10大排序算法之七:计数排序【稳定】,复杂度小,不常用计数排序,除非面试官特殊申明
- 机器学习笔记之Sigmoid信念网络(二)醒眠算法
- 《Python机器学习——预测分析核心算法》——2.4 基于因素变量的实数值预测:鲍鱼的年龄
- 再探 游戏 《 2048 》 —— AI方法—— 缘起、缘灭(7) —— Python版本实现的《2048》游戏的TDL算法
- baselines算法库common/tile_images.py模块分析
- 力扣93 - 复原IP地址【回溯算法】
- 华为OD机试 - 聚餐地点(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- 华为OD机试 - 消消乐游戏(Java) | 机试题+算法思路+考点+代码解析 【2023】
- 10算法策略之贪婪法
- 【算法专题】秒懂如何运用二分查找算法
- 25数据结构与算法分析之---树与森林
- 04数据结构与算法分析之---线性表的概念