题目:https://pintia.cn/problem-sets/1077214780527620096/problems/1077218398207094786
熟悉指针用法。二分法:要保证收敛。
AC代码:
Position BinarySearch( List L, ElementType X ){
Position l = 1 , r = L->Last, mid;
while(l <= r){
mid = (l+r)/2;
if(X < L->Data[mid] )r = mid - 1;
else if(X > L->Data[mid] )l = mid + 1;
else return mid;
}
return NotFound;
}
下面给出List ReadInput()的代码(不用在OJ上提交):
List ReadInput(){
List L;
L=(List)malloc( sizeof(struct LNode) );/*申请空间*/
int n;
scanf("%d",&n);
for(int i = 1 ; i <= n ; i++){
scanf( "%d" , & L -> Data[i] );
}
L->Last = n;
return L;
}