二分法查找

原创 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
  • 下载

二分法查找

知之者不如好之者,好之者不如乐之者。 当我们需要在一个有序的数组中需要查找某一个元素是否存在或元素存在的位置时,使用的比较多的就是二分查找也叫折半查找,首先我们来理一下它的查找流程,...

顺序表的冒泡排序算法及二分法查找代码实现

本文主要实现了比较经典的冒泡排序算法(对已经有序或者基本有序的顺序表复杂度大大降低),和二分法查找,各位看官看代码吧//冒泡排序算法及二分法查找 #include "stdio.h" typedef ...

C#二分法查找连续数字

二分法查找

在进行二分法查找前需要先对数据进行排序(具体排序实现详见下一篇文章),定义left(数据集的开头),right(数据集结尾)两个变量,然后在这组数据中找到mid=(left+right)/2,然后将待...

二分法查找

  • 2013-07-31 09:47
  • 106KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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