二分尋找的遞迴與非遞迴演算法

來源:互聯網
上載者:User

標籤:class   blog   ext   os   演算法   name   

/*二分尋找的遞迴與非遞迴演算法*/#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;}

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.