#include <iostream>
#include<bits/stdc++.h>
using namespace std;
void search(int data[],int x,int len){
int low,high,mid,num=0,pos=-1;
low=1;high=len;
mid=(low+high)/2;
while(low<=high){
if(data[mid]==x) {
pos=mid;num++;break;}
if(data[mid]>x){
high=mid-1;num++;}
if(data[mid]<x){
low=mid+1;num++;}
mid=(low+high)/2;
}
if(pos==-1) cout<<0<<" "<<num<<endl;
else cout<<pos<<" "<<num<<endl;
}
int main()
{
int data[100];
int x,i=1,flag;
int len=0;
cin>>x;
while(x){
data[i++]=x;
cin>>x;
}
len=i-1;
for(int i=1;i<len;i++){
flag=0;
for(int j=1;j<len-i+1;j++){
if(data[j]>data[j+1]){
int t=data[j];
data[j]=data[j+1];
data[j+1]=t;
flag=1;
}
}
if(flag==0) break;
}
cin>>x;
search(data,x,len);
//for(int i=1;i<=len;i++)
//cout <<data[i]<<endl;
return 0;
}
7083 有序表折半查找算法
猜你喜欢
转载自blog.csdn.net/changbaishannefu/article/details/111225005
今日推荐
周排行