永发信息网

5.贪心算法的核心思想。6.什么是递归?什么是迭代?两者的区别,举例说明。7.回溯的含义是什么?举例

答案:1  悬赏:0  手机版
解决时间 2021-11-19 15:24
5.贪心算法的核心思想。6.什么是递归?什么是迭代?两者的区别,举例说明。7.回溯的含义是什么?举例
最佳答案
1、贪心算法主要是把问题分成很多局部问题,用局部最优解合成整体最优解。因此使用这种算法需要此问题满足两个条件,一个是能够分成多个能够求解的局部问题,第二个就是局部问题的解能够合成最优解。和动态规划、回溯等相比差别就是再不回溯的前提下找出整体最优解或者接近最优解,速度快但应用有比较大的限制。

2、迭代也叫递推,通过重复执行某一步骤或者函数来求得计算结果
递归是指函数中直接或者间接调用自身
举例:
求a乘以2的10次方等于几
迭代:
for (i=0;i<10;i++)
a *= 2;

递归:
int db(int a,int num)
{
if (num<10)
return 2 * db(a,num+1);
else
return 1;
}

db(a,0);

3、回溯的含义就是在搜索问题的状态过程中,如果不能继续前进,再向后回到岔口,换一条路继续搜索,直到搜索完所有状态或者查找到需要的状态。
举例:(最典型的就是树的深度搜索,下面举一个简单的例子)
int a[10]={5,3,7,9,3,2,5,6,9,1};//从3开始查找1
int read[10]=(0);//是否查找过
int readNum = 0;//查找过的个数
int forward = 1;//1为左,2为右
int tmp = 0,index = 5;

tmp = a[index];
read[index] = 1;
readNum++;
while (tmp != 1 || readNum != 10)
{
if (forward == 1)
index --;
else
index++;
if (!read[index])
{
tmp = a[index];
read[index] = 1;
readNum++;
}

if (index <=0 || index>=9)
forward = 3 - forward;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
狗狗吃蒙脱石散 蒙脱石散狗狗怎么吃
接收一个县级快递点要多钱?各个快递公司应该
大埔县百侯中学怎么样?
混凝土泵车在农村的发展前景怎么样
四川小吃米馍馍做法?
假如淘宝买家收到商品食用后感觉身体不适卖家
在俄国如何网购?如何上Wi-Fi?以及如何泡妞
i7 4710mq与i5 4210hq的区别
我爸妈是对爱面子的人,为了面子有时不顾我学
文学作品中表现浓浓亲情的有哪些
330nk 63啥意思 在电容里
中国领土最大时到底有多大?!
顺丰快递(人民路139)地址在哪,我要去那里办
万用表和寻线器(寻线仪)哪个寻找网线更快,
有早上七点多杭州东站出发的火车有那几班
推荐资讯
亲人拖梦告诉我明天的事情
人类在学会使用火之前是靠吃什么食物来生存的
汉中加盟动漫店
我是女生,身高162,鞋码40的,我发现我长点身高
CorelDRAW 9里两个方形左右对齐的快捷键是什
羽桐精品酒店(重庆巴南万达店)地址在什么地方
淘宝里那些店铺卖佳能数码产品便宜些啊,一定
oracle顾问与ERP顾问有什么不同
求《搜异笔记》txt 全集 375397481 谢谢啦
1.47x6.5+7.53x6.5简便方法是什么?
车子两年没年检怎么办
把3.5写成了1.8.结果得到了22.5.原来的结果是
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?