zoukankan      html  css  js  c++  java
  • 二分查找的递归与非递归算法

    /*
    二分查找的递归与非递归算法
    */
    #include <iostream>
    #include <cstdio>
    using namespace std;
    
    bool bisrch( int low,int high,int v,int *text ) //递归写法
    {
        int i,mid;
        mid=( low+high )/2;
        if( low>high ) return false;
        if( v==text[mid] )  return true;
        else if( v<text[mid] )  return bisrch( low,mid-1,v,text );
        else return bisrch( mid+1,high,v,text );
    }
    
    bool bisrch1( int low,int high,int v,int *text ) //非递归写法
    {
        int i,mid;
        while( low<=high )
        {
            mid=(low+high)/2;
            if( text[mid]==v )  return true;
            else if( v<text[mid] ) high=mid-1;
            else low=mid+1;
        }
        return false;
    }
    
    int main()
    {
        int text[10];
        int i;
        for( i=0;i<10;i++ )
            text[i]=i;
        cout<<"递归写法:"<<endl;
        for( i=0;i<20;i++ )
        {
            if( bisrch(0,9,i,text) ) cout<<"FOUND!"<<endl;
            else cout<<"NOT FOUND!"<<endl;
        }
        cout<<"非递归写法:"<<endl;
        for( i=0;i<20;i++ )
        {
            if( bisrch1(0,9,i,text) ) cout<<"FOUND!"<<endl;
            else cout<<"NOT FOUND!"<<endl;
        }
        return 0;
    }
    

      

  • 相关阅读:
    微信成为开发者C#代码
    Ajax.ActionLink()方法的使用
    Entity FrameWork初始化数据库的四种策略
    最长公共子序列
    表达式求值
    韩信点兵
    蛇形填数
    5个数求最值
    求转置矩阵问题
    素数求和问题
  • 原文地址:https://www.cnblogs.com/ccguo/p/3806698.html
Copyright © 2011-2022 走看看