int ProcessArray(int *listA, int x, int n){ int i, j, k; i = 0; j = n-1; do{ k = (i+j)/2; if (x <= listA[k]) j = k-1; if (listA[k] <= x) i = k+1; } while (i <= j); if (listA[k] == x) return(k); else return -1;} |
Which one of the following statements about the function ProcessArray is CORRECT?
(A) It will run into an infinite loop when x is not in listA.
(B) It is an implementation of binary search.
(C) It will always find the maximum element in listA.
(D) It will return -1 even when x is present in listA.
(A) It will run into an infinite loop when x is not in listA.
(B) It is an implementation of binary search.
(C) It will always find the maximum element in listA.
(D) It will return -1 even when x is present in listA.
Answer: (B)
Explanation: The program is a simple iterative C implementation of Binary Search.
Explanation: The program is a simple iterative C implementation of Binary Search.
No comments:
Post a Comment