回 帖 发 新 帖 刷新版面

主题:书上的一些东西不明白

书上说“由于简单递归问题在求解过程中,无需进行试探和回溯”,
   我不理解,没办法区分什么是简单递归问题,什么是复杂递归问题。递归不是分直接递归和间接递归的么?什么时候有的简单递归和复杂递归的区别??
    什么叫无需进行试探和回溯??什么叫试探,什么叫回溯?
说实话,我书上确实没有发现有解释这名词的地方。


书上还有个题目我不理解:按照中点优先的顺序遍历线性表问题。一直线性表list以顺序存储方式存储,要求按以下顺序输出list中所有结点的值:首先输入线性表list中点位置上的元素值,然后输出中点左部所有元素的值,再输出中点右部所有元素的值;而无论输出中点左部所有元素的值还是中点右部所有元素的值,也应该遵守以上的规律;例如:已知数组list中的元素值为:
18 32 4 9 26 6 10 30 12 8 45
按照中点优先顺序遍历的输出结果为
6 4 18 32 9 26 12 10 30 8 45

下面是递归的算法
#define maxsize 100
typedef int listarr[maxsize];
void listorder(listarr list,int left,int right)
{int mid;
 if(left<=right)     //这句话我就不明白什么意思,非常不明白,什么叫“左边小与右边”????
 {mid=(left+right)/2;
  printf("%4d",list[mid]);
  listorder(list,left,mid-1);   //书上说是将中点左部元素按照中点优先顺序输出,我有点不理解,有点看不出来
  listorder(list,mid+1,right);
}

回复列表 (共7个回复)

沙发

“试探和回溯”可以google一下,或者找本算法书看看。

if(left<=right)如果左边大于右边就不继续递归了。我嘴笨,表达不出来- -

板凳

什么叫左边大与右边???
还有数据结构的书不就是体现算法的书么?还有什么其他的书?有中文的么

3 楼

《算法基础》和《算法导论》

4 楼

我靠,大哥,好象有人介绍我看过,好象都是英文的吧,有中文的没,你知道我英文水平肯定在三级以下,叫我怎么看,虽然我很想看,虽然我资质很差,但是有中文的没?
还有你的那个魔法钥匙的歌我也听的啊

5 楼

据说中文版已经绝版了,而且翻译的不好。magic key是cool-t乐队出的唯一一首歌哟,不过真是有实力!

6 楼

我发现中文版的了,呵呵,昨天一找就找到了

7 楼

给我发一份哪euclidwang@163.com。你也可以去信息学奥赛或ACM竞赛有关的网站看看,都是讲算法的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册