アルゴリズム第二章実践報告

3899 ワード

1.実践テーマ
二分検索を用いてxの下付き文字を探し出す.
2.問題の説明
n値(1<=n<=1000)、n個の非降順配列の整数および検索する数xを入力し、二分検索アルゴリズムを用いてxを検索し、xが存在する下付き(0~n-1)および比較回数を出力する.xが存在しない場合、出力-1と比較回数.
入力形式:
合計3行入力:最初の行はn値です.2行目はn個の整数である.3行目はx値です.
出力フォーマット:
xが存在する下付き(0~n-1)および比較回数を出力する.xが存在しない場合、出力-1と比較回数.
サンプルを入力:
4
1 2 3 4
1

出力サンプル:
0
2

3.
#include
using namespace std;
int Search(int a[], int &x, int n,int &z){
    int l=0;  int r=n-1;
    z=0;
    while (l<=r){
        z++;
        int m=(l+r)/2;
        if(x==a[m])
        {
            return m;
        }
        if(x>a[m])
        {
            l=m+1;
        }
        else
            r=m-1;

    }
    return -1;

}
int main(){
    int a[10000],  n,  x,z;
    cin>>n;
    for(int i=0;i){
        cin>>a[i];
    }
    cin>>x;
    int count=Search(a,x,n,z);
    cout<endl;
    cout<<z;
    return 0;
}

4.            
for , o(n), O(1)。


5. ( )
, x , 。