二分查找

来源:互联网 发布:微店发货软件 编辑:程序博客网 时间:2024/06/07 13:09
//二分查找,在数组非递减地排序时对数组进行二分查找#include <iostream>using namespace std;int Dich_search(int a[],int left,int right, int value){    if(left<right)    {        int mid=(left+right)/2;        if(a[mid]==value) return mid;        if(a[mid]>value) Dich_search(a,left,mid,value);        if(a[mid]<value) Dich_search(a,mid+1,right,value);    }    return -1;}int main(int argc, char *argv[]){//  int a[6]={1,2,3,4,5,6};    int n,value;    cout<<"n="; cin>>n;    cout<<"value="; cin>>value;    int a[n];    for(int i=0;i<n;i++) cin>>a[i];    int b=Dich_search(a,0,sizeof(a)/sizeof(int)-1,value);    cout << b << endl;    return 0;}