7083 Ordered List Binary Search Algorithm

#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;
}

Guess you like

Origin blog.csdn.net/changbaishannefu/article/details/111225005