举例说明,动态规划和贪心算法的区别
贪心算法是种策略,思想。
。
。
它并没有固定的模式比如最简单的背包问题用贪心的思想去做,就可能有很多种方法性价比最高的、价值最高的、重量最轻的而你没法确保你所选择的贪心策略对所有的情况都是绝对最优的动态规划的思想是分治+解决贪心算法的证明方法
贪心算法的基本思路如下:
1.建立数学模型来描述问题。
2.把求解的问题分成若干个子问题。
3.对每一子问题求解,得到子问题的局部最优解。
4.把子问题的解局部最优解合成原来解问题的一个解。
----------------------------------------------
其实归纳起来也就一个类。
其他的都是分支求一个算法(贪心算法)
首先,无所谓哪里密集哪里不密集的说法,这是人为的区分,需要首先遍历全部格子才能确定,是最慢的算法,全部遍历过了就可以得出最优的路线了.
既然用贪心算法,为了思考方便,可以假设棋盘无穷大,算法的目的是判断下一步该往右走还是往下走,思想如下:
判断当前格子右、下两个相邻的格子是否有金块,情形如下:
1)如果一个有一个没有,则往有金块的格子走
2)如果都没有或都有,则需要判断往哪个方向走能更快的拾到下一个金块,方法如下:
让机器人假设地各往两个方向走一步,然后对当前格子作判断情形如下:
A)一个格子继续走能拾到金块,另一个不能,则上一步往该格子走
B)如果仍旧都有或都没有,重复2)直到找到符合A)的情形。
假设棋盘是N*N个格子,则贪心算法最坏的情形是要遍历整个棋盘,比如只有第一个格子有金块时,就需要遍历整个棋盘才能确定走法。
最好的情形也需要遍历4*N个格子。
时间复杂度上来算的话,应该是O(nLogn)贪心算法编程
复杂度自己推吧,很简单
#include <stdio.h>
void maxmoney(unsigned int cost, int* a);
int main()
{
unsigned int cost, i, j;
int a[6]={0,0,0,0,0,0};
printf("%s","Cost: ");
scanf("%d",&cost);
maxmoney(cost, a);
printf("
");
printf("100 yuan : %d
",a[0]);
printf("50 yuan : %d
",a[1]);
printf("10 yuan : %d
",a[2]);
printf("5 yuan : %d
",a[3]);
printf("2 yuan : %d
",a[4]);
printf("1 yuan : %d
",a[5]);
return 0;
}
void maxmoney(unsigned int cost, int* a)
{
if (cost < 2){
a[5] += cost;
}else if (cost >= 100){
a[0]++;
cost = cost - 100;
maxmoney(cost, a);
}else if (cost >= 50){
a[1]++;
cost = cost - 50;
maxmoney(cost, a);
}else if (cost >= 10){
a[2]++;
cost = cost - 10;
maxmoney(cost,a);
}else if (cost >= 5){
a[3]++;
cost = cost - 5;
maxmoney(cost, a);
}else if (cost >= 2){
a[4]++;
cost = cost - 2;
maxmoney(cost, a);
}
}如何用贪心算法求解tsp问题
最快回答那个不懂别乱说,别误人子弟。
这题标准的贪心算法,甚至很多时候被当做贪心例题
要求平均等待时间,那么就得用 总等待时间 / 人数
所以只用关心总等待时间,
如果数据大的在前面,那么后面必然都要加一次这个时间,所以按从小到大排。
给你写了个,自己看吧。
#include "stdafx.h"
#include
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int n;
float arr[105];
cin >> n;
for(int i = 0; i < n; ++i)
cin >> arr[i];
sort(arr, arr+n);
int tnow = 0;
int tmax = 0;
for(int i = 0; i < n; ++i)
{
tmax += tnow;
tnow += arr[i];
}
for(int i = 0; i < n; ++i)
{
printf("%0.2f ", arr[i]);
}
cout << endl;
printf("%0.2f
",tmax / (float)n);
return 0;
}
昔日数据怎么样?昔日数据新上了湖北十堰云服务器,湖北十堰市IDC数据中心 母鸡采用e5 2651v2 SSD MLC企业硬盘 rdid5阵列为数据护航 100G高防 超出防御峰值空路由2小时 不限制流量。目前,国内湖北十堰云服务器,首月6折火热销售限量30台价格低至22元/月。(注意:之前有个xrhost.cn也叫昔日数据,已经打不开了,一看网站LOGO和名称为同一家,有一定风险,所以尽量不要选择...
百纵科技:美国高防服务器,洛杉矶C3机房 独家接入zenlayer清洗 带金盾硬防,CPU全系列E52670、E52680v3 DDR4内存 三星固态盘阵列!带宽接入了cn2/bgp线路,速度快,无需备案,非常适合国内外用户群体的外贸、搭建网站等用途。官方网站:https://www.baizon.cnC3机房,双程CN2线路,默认200G高防,3+1(高防IP),不限流量,季付送带宽美国洛杉矶C...
华纳云(HNCloud Limited)是一家专业的全球数据中心基础服务提供商,总部在香港,隶属于香港联合通讯国际有限公司,拥有香港政府颁发的商业登记证明,保证用户的安全性和合规性。 华纳云是APNIC 和 ARIN 会员单位。主要提供香港和美国机房的VPS云服务器和独立服务器。商家支持支付宝、网银、Paypal付款。华纳云主要面向国内用户群,所以线路质量还是不错的,客户使用体验总体反响还是比较好...
贪心算法为你推荐
空气污染指数api“空气污染指数API”与“空气质量指数AQI”的问题统一身份认证的好处统一身份管理对企业来说有必要吗?有哪些好处?电子系统设计"电子商务系统设计的基本原则是什么"网站推广120种方法如何把自己公司的网站推广开?网站推广120种方法如何做好一个网络推广?需要掌握一些什么样的技能?请多多指教!计算机网络安全试题计算机网络三级考试皮城警备皮城警备为什么进不去啊源码哥有报过源码熊的家长吗?他们的课程怎么样?孩子能听懂吗?湖北文理学院地址湖北文理学院教课办在哪ibm磁盘阵列如何在IBM PC服务器3850上做RAID1磁盘阵列?
美国vps评测 免费动态域名解析 精品网 私服服务器 香港托管 贵州电信宽带测速 权嘉云 卡巴斯基免费试用 江苏双线服务器 跟踪路由命令 512mb 四川电信商城 免费ftp 全能空间 杭州电信宽带优惠 酸酸乳 云服务是什么意思 宿迁服务器 北京主机托管 好看的空间 更多