zoukankan      html  css  js  c++  java
  • 5、折半查找(二分查找)


    前提条件:数组排序

      1 #include<iostream>
      2 
      3 using namespace std;
      4 
      5 int BinarySearch(int *a,const int x,const int n);
      6 
      7 int main()
      8 {
      9 	int x[]={1,2,3,4,5,6,7,8,9,10};
     10 	int result;
     11 	int num=7;//要找的数
     12 	result=BinarySearch(x,num,10);
     13 
     14 	if(result<0)
     15 		cout<<”没找到!”<<endl;
     16 	else
     17 		cout<<"在m["<<result<<"]处找到"<<x[result]<<endl;
     18 	system("pause");
     19 	return 0;
     20 }
     21 
     22 int BinarySearch(int *a,const int x,const int n)
     23 {
     24 	int left,right,mid;
     25 	left=0;right=n-1;
     26 
     27 	while(left<=right)
     28 	{
     29 		mid=(left+right)/2;
     30 		if(a[mid] == x)
     31 			return mid;
     32 		else if(a[mid] < x)
     33 			left=mid+1;
     34 		else if(a[mid] > x)
     35 			right=mid-1;
     36 	}
     37 	return -1;
     38 }
     39 

    VS2010中运行结果:

    image

  • 相关阅读:
    2016.6.26考试
    爆搜。。。。。。。
    9.18目标
    9.17水题总结
    9.16测试
    9.10考试
    jzoj P1163 生日派对灯
    9.04考试总结
    8/8刷题记录
    a[i++]
  • 原文地址:https://www.cnblogs.com/luanxin/p/8875054.html
Copyright © 2011-2022 走看看