设有一个递归算法如下:
int x(int n)
{
if(n<=3) return 1;
else return x(n-2)+x(n-4)+1;
}
试问计算x(x(8))时需要计算()次x函数。
A、8次
B、9次
C、16 次
D、18次
int x(int n)
{
if(n<=3) return 1;
else return x(n-2)+x(n-4)+1;
}
试问计算x(x(8))时需要计算()次x函数。
A、8次
B、9次
C、16 次
D、18次
A.8次
B.9次
C.16 次
D.18次
设有一个递归算法如下int fact(intn){//n 大于等于0 if(n<=0)return 1; else return n* fact(n--); }则计算fact(n)需要调用该函数的次数为(30)次。
A.n
B.n+1
C.n+2
D.n-1
设有一个递归算法如下: int fact(int n){ if(n<=0)return 1; else return n*fact(n-1); } 下面正确的叙述是(35)。
A.计算fact(n)需要执行n次函数调用
B.计算fact(n)需要执行n+1次函数调用
C.计算fact(n)需要执行n+2次函数调用
D.计算fact(n)需要执行n-1次函数调用
设有一个递归算法如下 im fact(int n){ if(n<=0)return 1; else return n * fact(n-1); } 下面正确的叙述是(35)。
A.计算fact(n)需要执行n次函数调用
B.计算fact(n)需要执行n+1次函数调用
C.计算fact(n)需要执行n+2次函数调用
D.计算fact(n)需要执行n-1次函数调用
写一个递归方式的选择排序算法。 非递归选择排序算法如下: void selectionSort(int list[],int last){ int current; int smallest; int holdData; int walker; for(current=0;current<last;current++){ smallest=current; for(walker=current+1;walker<=last;walker++) if(list[walker]<list[smallest])smallest=walker; holdData=list[current]; list[current]=list[smallest]; list[smallest]=holdData; } return; }
【Test-10-3】设有n个整数存放于一个一维数组A[ ]中,下面算法的功能是:设计一个递归函数,实现简单选择排序算法。函数的首部为: void selectSort(int A[], int left, int right); 其中,A[]存放待排序数据,left和right是当前递归调用时排序区间的左、右端点。 最初外部调用的形式为:selectSort(A,0,n-1)。请在空白处填入正确的语句。 void selectSort(int A[ ], int left, int right) { if(________①________) { int k = ______②______, i, temp; for(_______③________; i <= right; i++) if(a[i] a[k]) ______④______; 寻找区间内最小整数 if(left !="k)" { 交换到 left 端 temp="A[left];" a[left]="A[k];" a[k]="temp;" } __________⑤______________; 对剩余整数递归排序>
【Test-9-2】下面算法的功能是:编写一个递归算法实现在有序顺序表上的折半查找。算法的参数表中应增加两个形参 left 和 right,分别指定算法在本层执行时的查找区间的左、右端点。当查找成功时函数返回查找到的元素的存放位置;当查找不成功时函数返回-1。 请在空白处填入正确的语句。 递归算法的首部为 int binarySearch (seqList &L, DataType x, int left, int right )。主程序的调用方式为 { int loc = binarySearch(L, x, 0, L.n-1 )。 int binarySearch(seqList &L, DataType x, int left, int right) { //在查找区间[left..right]采用折半查找算法查找与给定元素匹配的元素。 int mid = ________①_______; if(__________②_______) { mid = (left + right) / 2; if(________③_________) mid = binarySearch1(L, x, _____④_______, right); //右缩区间 else if(x < data[mid]) mid = binarySearch(L, x, left, ______⑤_______); //左缩区间 } return _______⑥_________; };
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!