查找(顺序和二分)

来源:百度知道 编辑:UC知道 时间:2024/05/14 04:29:48
【问题描述】从键盘任意输入一组关键字(整数),在这组关键字中查找任一给定的值。若这组关键字有序,则采用二分查找法查找,否则采用顺序查找法查找(需输出相应的提示信息)。若查找成功,输出给定值和关键字比较的次数和查找到的关键字在数组中的位置序号;若查找不到,输出给定值和关键字比较的次数和相应提示信息。

二分查找:
int search(int a[],int x,int n)
{
int mid=0;
int low=0;
int high=n;
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]==x)
{ return mid; }
else if(x<a[mid])
{ high=mid-1; }
else
{ low=high+1; }
}
return -1;
}
顺序查找:
int search(int a[],int x,int n)
{
int i;
for(i=0;i<n;i++)
{
if(a[i]==x)
return i;
else
return -1;
}
}