📜  算法|搜寻|问题6

📅  最后修改于: 2021-06-29 02:10:01             🧑  作者: Mango

在上述问题中,为使程序正常运行而需要对其进行的更正是(GATE CS 2008)
(A)将第6行更改为:如果(Y [k] (B)将第6行更改为:如果(Y [k] (C)将第6行更改为:if(Y [k] <= x)i = k;否则j = k;
(D)将第7行更改为:} while((Y [k] == x)&&(i 答案: (A)
说明:下面是更正的函数

f(int Y[10], int x) {
   int i, j, k;
   i = 0; j = 9;
   do {
           k =  (i + j) /2;
           if( Y[k] < x)  i = k + 1; else j = k - 1;
       } while(Y[k] != x && i < j);
   if(Y[k] == x) printf ("x is in the array ") ;
   else printf (" x is not in the array ") ;
}

参考:http://en.wikipedia.org/wiki/Binary_search_algorithm#Implementations
这个问题的测验