#include <stdlib.h>
#include <stdio.h>
//二分查找非递归

int Binary_Search(int list[],int key,int length){
    int low=0,high=length-1;
    while (low<=high){
        int mid=(high+low)/2;
        if (list[mid]==key)
            return ++mid;
        else if (list[mid]>key)
            high=mid-1;
        else if (list[mid]<key)
            low=mid+1;
    }
    return -1;
}
int main(){
    int list[10]={1,3,5,6,7,8,9,10,11,19};
    int number=Binary_Search(list,10,10);
    printf("%d",number);
    return 0;
}
#include <stdlib.h>
#include <stdio.h>
//二分查找 递归

int Binary_Search(int list[],int key,int low,int high){
    int mid = (low+high)/2;
        if (list[mid]==key)
            return ++mid;
        else if (list[mid]<key)
            Binary_Search(list,key,mid+1,high);
        else if (list[mid]>key)
            Binary_Search(list,key,low,high-1);
}
int main(){
    int list[10]={1,3,5,6,7,8,9,10,11,19};
    int result=Binary_Search(list,10,0,10);
    printf("%d",result);
    return 0;
}

版权声明:本文为szj666原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/szj666/p/13406014.html