二分法查找

原创 2006年06月12日 13:32:00

#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

第六个

二分法查找

  • 2013年07月03日 08:34
  • 548B
  • 下载

归并排序、二分法查找的递归实现

一、归并排序 // 归并排序 // 2014-2-22 #include using namespace std; void Merge(int* array, int p, in...

二分法排序和查找(C#)

  • 2012年03月27日 16:51
  • 21KB
  • 下载

c++褊写的二分法查找程序

  • 2011年03月30日 01:01
  • 2KB
  • 下载

二分法查找(数组元素无序)

问题描述: 一数组,含有一堆无序数据,首先将数据按顺序排列,再用二分法实现某个元素的查找,若找到,返回该元素在数组中的下表,否则,返回不存在提示信息。 #include #include int...

C#二分法查找连续数字

  • 2017年10月10日 14:07
  • 5KB
  • 下载

二分法查找Unicode To GB2312转码表

博客重新开通,以作学习记录之用。   昨晚要写个C实现的Unicode到GB2312的转码程序,可是找了下网上现成的转码表数组多以GB2312码升序排列,而我只需要Unicode至GB2312的单向...

二分法查找

  • 2013年07月31日 09:47
  • 106KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二分法查找
举报原因:
原因补充:

(最多只允许输入30个字)