折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary的作用是应用折半查找法从存有10个有序整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回 –1。请选择填空。 int binary(int a[10],int m) { int low=0,high=9,mid; while(low<=high) { mid= (low+high)/2; if(ma[mid]) ( ); else return(mid); } return( –1); } (1)A、high=mid – 1 B、low=mid+1 C、high=mid+1 D、low=mid–1 (2) A、high=mid–l B、low=mid+1 C、high=mid+l D、low=mid–1
折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary的作用是应用折半查找法从存有10个有序整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回 –1。请选择填空。 int binary(int a[10],int m) { int low=0,high=9,mid; while(low<=high) { mid= (low+high)/2; if(ma[mid]) ( ); else return(mid); } return( –1); } (1)A、high=mid – 1 B、low=mid+1 C、high=mid+1 D、low=mid–1 (2) A、high=mid–l B、low=mid+1 C、high=mid+l D、low=mid–1
设low和high分别是在有序表中折半查找的指针,如果查找的关键字Key大于low和high的中间值mid所指的关键字,则正确缩小查找区间的是( )。 A: high=mid+1 B: high=mid C: low=mid+1 D: low=mid
设low和high分别是在有序表中折半查找的指针,如果查找的关键字Key大于low和high的中间值mid所指的关键字,则正确缩小查找区间的是( )。 A: high=mid+1 B: high=mid C: low=mid+1 D: low=mid
折半查找中,如果左边界是low,右边界是high,中间位置是mid则如果key A: high=mid-1 B: high=mid+1 C: low=mid-1 D: low=mid+1
折半查找中,如果左边界是low,右边界是high,中间位置是mid则如果key A: high=mid-1 B: high=mid+1 C: low=mid-1 D: low=mid+1
中国大学MOOC:在二分查找实现中,若将语句low=mid+1和up=mid-1,分别改为low=mid和up=mid,则程序运行的结果有可能为?
中国大学MOOC:在二分查找实现中,若将语句low=mid+1和up=mid-1,分别改为low=mid和up=mid,则程序运行的结果有可能为?
4.试将折半查找的算法改写成递归算法。Itbisearch(sqlistL,itlow,ithigh,elemtypex){If(lowhigh)retur(0else{if(L.data[mid]==x)retur(mid);elseif(L.data[mid]x)bisearch(L,low,mid-1,x);elsebisearch(L,mid+1,high,x);}}//bisearch
4.试将折半查找的算法改写成递归算法。Itbisearch(sqlistL,itlow,ithigh,elemtypex){If(lowhigh)retur(0else{if(L.data[mid]==x)retur(mid);elseif(L.data[mid]x)bisearch(L,low,mid-1,x);elsebisearch(L,mid+1,high,x);}}//bisearch
中值是在一组已排序数值的中间值。假如是奇数数列,则是中间的值,如果是偶数数列,则是中间两个数的平均值。 //求数组a中n个元素的中值[br][/br] double middle(const double a[],const int n) { int mid=(n-1)/2; if(n%2!=0) return a[mid]; else[br][/br] return【】; } A: (a[mid]+a[mid+1])/2 B: (a[mid]+a[mid-1])/2 C: a[mid]/2 D: a[mid+1]/2
中值是在一组已排序数值的中间值。假如是奇数数列,则是中间的值,如果是偶数数列,则是中间两个数的平均值。 //求数组a中n个元素的中值[br][/br] double middle(const double a[],const int n) { int mid=(n-1)/2; if(n%2!=0) return a[mid]; else[br][/br] return【】; } A: (a[mid]+a[mid+1])/2 B: (a[mid]+a[mid-1])/2 C: a[mid]/2 D: a[mid+1]/2
若输入52,则下面程序的运行结果是 。 main() {int a[8]={6,12,18,42,46,52,67,73}; int low=0,mid,high=7,x; printf("Input a x:"); scanf("%d",&x); while(low<=high) {mid=(low+high)/2; if(x>a[mid]) low=mid+1; else if(x Search Successful! The index is:5
若输入52,则下面程序的运行结果是 。 main() {int a[8]={6,12,18,42,46,52,67,73}; int low=0,mid,high=7,x; printf("Input a x:"); scanf("%d",&x); while(low<=high) {mid=(low+high)/2; if(x>a[mid]) low=mid+1; else if(x Search Successful! The index is:5
设$A,B$是$n$阶正交矩阵,且$\mid A\mid=-\mid B\mid$,则( ). A: $A+B$可逆 B: $A+B$不可逆 C: $\mid A+B\mid=1$ D: $\mid A+B\mid=-1$
设$A,B$是$n$阶正交矩阵,且$\mid A\mid=-\mid B\mid$,则( ). A: $A+B$可逆 B: $A+B$不可逆 C: $\mid A+B\mid=1$ D: $\mid A+B\mid=-1$
设L[low..high]是当前的查找区间,首先让待查找的数据元素同线性表中间结点mid=(low+high)/2的关键字比较,若待查找的数据元素比中间结点的关键字大,则在线性表的后半部分,即 low =( )进行二分检索。 A: mid-1 B: mid C: mid+1 D: mid/2
设L[low..high]是当前的查找区间,首先让待查找的数据元素同线性表中间结点mid=(low+high)/2的关键字比较,若待查找的数据元素比中间结点的关键字大,则在线性表的后半部分,即 low =( )进行二分检索。 A: mid-1 B: mid C: mid+1 D: mid/2
采用二分查找法,若当前取得的中间位置MID的元素值小于被查找值,则表明待查元素可能在表的后半部分,下次查找的起始位置通常应( ) A: 从MID/2位置开始 B: 从MID位置开始 C: 从MID-1位置开始 D: 从MID+1位置开始
采用二分查找法,若当前取得的中间位置MID的元素值小于被查找值,则表明待查元素可能在表的后半部分,下次查找的起始位置通常应( ) A: 从MID/2位置开始 B: 从MID位置开始 C: 从MID-1位置开始 D: 从MID+1位置开始