zoukankan      html  css  js  c++  java
  • 数据结构与算法(C++)之折半查找递归算法

    折半查找递归算法跟迭代算法:

    #include <iostream>
    using namespace std;
    int diedai(int *a,const int x,const int n);
    int digui(int *a,const int x,const int left,const int right);
    int main()
    {
    int a[]={1,2,3,4,5,6,7,8,9,10};

    int num=1;
    //9为数组的下标
    int o=digui(a,num,0,9);
    if(o<0)
    cout<<"递归:对不起没有找到!"<<endl;
    else
    cout<<"递归:在a["<<o<<"]中找到"<<num<<endl;
    //10为数据的个数
    int b=diedai(a,num,10);
    if(b<0)
    cout<<"迭代:对不起没有找到!"<<endl;
    else
    cout<<"迭代:在a["<<o<<"]中找到"<<num<<endl;
    return 0;
    }
    int diedai(int *a,const int x,const int n){
    int left=0,right=n-1;
    while(left<=right){
    int mid=(left+right)/2;
    if(x<a[mid]) right=mid-1;
    else if(x>a[mid]) left=mid+1;
    else return mid;
    }
    return -1;
    }
    int digui(int *a,const int x,const int left,const int right){
    if(left<=right){
    int mid=(left+right)/2;
    if(x<a[mid]) return digui(a,x,left,mid-1);
    else if(x>a[mid]) return digui(a,x,mid+1,right);
    else return mid;
    }
    return -1;
    }

    no one and you
  • 相关阅读:
    git 镜像地址
    IntelliJ IDEA 2019 控制台中文乱码问题
    LINUX配置本地YUM源
    动态添加js的代码
    Java 多线程
    Java I/O系统
    Java 中的容器 Collection 和 Map
    Java 数组
    javaweb的四大作用域
    三层 转自http://git.oschina.net/tzhsweet/superui
  • 原文地址:https://www.cnblogs.com/wslQAQ/p/12330025.html
Copyright © 2011-2022 走看看