#include <stdio.h>
#include <stdlib.h>
#define MaxSize 50
typedef struct{
int data[MaxSize];
int length;
}Sqlist;
bool ListInsert(Sqlist &L,int i,int e){
L.length=10;
if(i<1 || i>L.length+1) //判断i的范围是否有效
return false;
if(L.length>=MaxSize)
return false;
for(int j=L.length;j>=i;j--)
L.data[j]=L.data[j-1];
L.data[i-1]=e;
L.length++;
return true;
}
bool Listdelete(Sqlist &L,int i,int e){
L.length=10;
if(i<1 ||i>L.length)
return false;
e=L.data[i-1];
for(int j=i;j<L.length;j++)
L.data[j-1]=L.data[j];
L.length--;
return true;
}
int Locate(Sqlist &L,int e){
L.length=10;
int i;
for(i=0;i<L.length;i++){
if(L.data[i]==e)
return i+1;
}
return 0;
}
void Printf(Sqlist &L){
L.length=10;
for(int i=0;i<L.length;i++)
printf("%d ",L.data[i]);
}
void Scanf(Sqlist &L){
L.length=10;
for(int i=0;i<L.length;i++){
scanf("%d",&L.data[i]);
}
}
//折半查找
bool Search(Sqlist &L,int a){
L.length=10;
int low=0,high=L.length-1,mid;
while(low<=high){
mid=(low+high)/2;
if(L.data[mid]==a)
return true;
else if(L.data[mid]<a)
low=mid+1;
else if(L.data[mid]>a)
high=mid-1;
}
return false;
}
int main(){
int a;
Sqlist A;
Scanf(A);
Printf(A);
printf("\n输入要查找的元素:\n");
scanf("%d",&a);
if(Search(A,a))
printf("查找成功\n");
else
printf("查找失败\n");
return 0;
}