二分查找

来源:互联网 发布:文明网络绘画 编辑:程序博客网 时间:2024/06/06 17:28

作者:silence、2012年5月17日

本文参考:Google,数据结构(C语言)
本人声明:个人原创,转载请注明出处。


#include <cstdlib>#include <iostream>/*Author : silenceTime : 2012/5/18Description : 二分查找 */ using namespace std;//循环方式 int Bsearch(int a[],int key,int low,int high){    int mid ; while(low <= high)//注意条件  { mid = (low+high)/2; if(key == a[mid]) return mid; if(a[mid]>key)    high = mid-1;//在低区搜索  else              low = mid+1; //在低区搜索        }    return -1;//不存在 }  //递归方式 int search2(int a[],int key,int low,int high ){    if(low <= high)    {      int mid;      mid = (low + high)/2;      if(key == a[mid]) return mid;      else if( key >a[mid]) return search2(a,key,mid +1,high);//在高区搜索       else  return search2(a,key,low,mid-1);    //在低区搜索     }    return -1;}int main(int argc, char *argv[]){    int a[] = {1,2,3,4,5,6,7,8,9,10};    cout<<search2(a,3,0,9)<<endl;     system("PAUSE");    return EXIT_SUCCESS;}/*输出结果 2 */ 


原创粉丝点击