对于下列二分查找算法,以下正确的是( )。
A. int binarySearch(int a[], int n, int x){int low=0, high=n-1;while(low<=high){int mid=(low+high)/2;if(x==a[mid]) return mid;if(x>a[mid]) low=mid;else high=mid;}return –1;}
B. int binarySearch(int a[], int n, int x){int low=0, high=n-1;while(low+1!=high){int mid=(low+high)/2;if(x>=a[mid]) low=mid;else high=mid;}if(x==a[low]) return low;else return –1;}
C. int binarySearch (int a[], int n, int x){int low=0, high=n-1;while(low
关于回溯法以下叙述中不正确的是()。
A. 回溯法有“通用解题法”之称,它可以系统地搜索一个问题的所有解或任意解
B. 回溯法是一种既带系统性又带有跳跃性的搜索算法
C. 回溯算法需要借助队列这种结构来保存从根结点到当前扩展结点的路径
D. 回溯算法在生成解空间的任一结点时,先判断该结点是否可能包含问题的解,如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向祖先结点回溯
常见的两种分枝限界法为()。
A. 广度优先分枝限界法与深度优先分枝限界法
B. 队列式(FIFO)分枝限界法与堆栈式分枝限界法
C. 排列树法与子集树法
D. 队列式(FIFO)分枝限界法与优先队列式分枝限界法