夜深人静ING

流浪的人儿....

二分法查找

#include <iostream.h>
#include <stdio.h>
#include <windows.h>
int erfen(int sum[],int x,int n){
 int front=0,rear=n-1;
 while(n/2+1){                          //设置为n/2+1以减小时间复杂度
  if(sum[(front+rear)/2]>x){        //如果这个数在前半部分
   rear=(front+rear)/2;
   n--;
  }
   else if(sum[(front+rear)/2]<x){//如果这个数在后半部分
    front=(front+rear)/2+1;
    n--;
   }
   else if(x==sum[(front+rear)/2]){//如果找到这个数了
    return (front+rear)/2+1;
    n--;
        break;
   }

 }
 if((n/2+1)==0){                            //判断是否找到了
   printf("not find/n");
   exit(0);
   return 0;   
  }
}

 


void main(){
 int sum[9]={10,11,12,13,14,15,16,17,18},res;
 int i=0;
 cout<<"请输入你要查找的数:"<<endl;
 cin>>i;
 res=erfen(sum,i,9);
 cout<<"第"<<res<<"个"<<endl;
}
 
运行结果:

请输入你要查找的数:

15

第六个

阅读更多
文章标签: include
个人分类: 程序语言之C/C++
上一篇最爱的人(注:转贴,因为我写转贴时,占主页面太多)
下一篇把音量放到最大
想对作者说点什么? 我来说一句

c语言 二分法查找

2010年05月11日 312B 下载

没有更多推荐了,返回首页

关闭
关闭