欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

二分法查找

程序员文章站 2022-03-14 22:52:45
...

百度说的很明白哈哈,就是在一个大小排序好的数组里面查找,挺神奇的。验证了几次都可以。两边夹着查找,判断中间的mid是否等于查找的数就可以了。 

#include<iostream>
#define N 10
using namespace std;
int main()
{
     int a[N],front,end,mid,x,i;
     cout<<"请输入已排好序的a数组元素:"<<endl;
     for(i=0;i<N;i++)
              cin>>a[i];
     cout<<"请输入待查找的数x:"<<endl;
     cin>>x;
     front=0;
     end=N-1;
     mid=(front+end)/2;
     while(front<end&&a[mid]!=x)
     {
        if(a[mid]<x)front=mid+1;
        if(a[mid]>x)end=mid-1;
        mid=(front+end)/2;
     }
     if(a[mid]!=x)
          cout<<"没找到!"<<endl;
     else
          cout<<"找到了,在第"<<mid+1<<"项里"<<endl;
  return 0;
}