二分法查找算法——DEMO

来源:互联网 发布:fanuc数控系统编程视频 编辑:程序博客网 时间:2024/05/22 01:57
// 二分法查找
 
 
#include <iostream>using namespace std;int main(){    const int N = 10;    int i, iIndex;    bool isFound =false;    int a[N] = {-60, -57,-9, 1, 3, 8, 10, 19, 20, 120};    cout<< "Serial:\n";    for ( i = 0; i< N; i++ )    {       cout.width(5);       cout << i;    }    cout<< endl;    cout<< "Data:\n";    for ( i = 0; i< N; i++ )    {       cout.width(5);       cout <<a[i];    }    cout<< endl;    int SearchObj;    cout<< "Which object will be search?";    cin>> SearchObj;    int Head = 0, Tail = N,Middle = (Tail-Head)/2;;    int iFoundCount =0;    while ( !isFound&& iFoundCount <N)    {       if ( SearchObj > a[Middle])       {           Head =Middle;           Middle =Head + (Tail-Head)/2;       }       else       {           if (SearchObj < a[Middle] )           {              Tail = Middle;              Middle = Tail -(Tail-Head)/2;           }           else           {              isFound = true;              iIndex = Middle;           }       }       iFoundCount++;    }    if ( isFound )    {       cout << "Foundobject index is: " << iIndex<< endl;    }    else    {       cout << "Cannotfind!" << endl;    }    cout<< "Search times:"<< iFoundCount;    return 0;}

 
// 百度里可以搜到很多种,都是有问题的,本算法本经人亲自测试验证无误。
原创粉丝点击