2015. 12. 2. 00:40

이진 탐색

#include <iostream>
#include <stdlib.h>

using namespace std;

class BINARY{
    private:
       
    public:
       int find(int*,int,int,int);
};   

 

int BINARY::find(int* arrs, int start,int end, int data)
{
    int middle;
    middle = (start + end) / 2;
    if(start < end)
    {
        if(arrs[middle] < data)
                start = middle + 1;
        else if(arrs[middle] > data)
                end = middle - 1;
        else if(arrs[middle] == data)
                return middle;
        return find(arrs, start,end, data);
    }
    return -1;   
}   


int main()
{
    int arr[10] = {111,124,345,366,388,566,777,889,1000,1002};
    int dex;
    BINARY b;
    dex = b.find(arr,0,10,566);
    if(dex == -1) cout<<"없음"<<endl;
    else cout<<dex<<endl;
   
    system("pause");
    return 0;
}