二分查找算法

来源:互联网 发布:mac怎么给手机换铃声 编辑:程序博客网 时间:2024/06/09 15:00

二分查找的时间复杂度O(logn)

#import <Foundation/Foundation.h>


int binarySearch(int a[],int x, int s,int t) {

    if (s > t) {

        return -1;

    }

    

    int m = (s + t) / 2;

    

    if (x > a[m]) {

        return binarySearch(a, x, s, m -1);

    }

    

    if (x < a[m]) {

        return binarySearch(a, x, m +1, t);

    }

    

    return m;

}


int main(int argc,const char * argv[]) {

    @autoreleasepool {

        // insert code here...

        int a[10] = {88,85, 78, 77, 75, 70,68, 66, 50, 48};

        for (int i =0; i < 10; i ++) {

            printf("%d ",binarySearch(a, a[i], 0, 9));

        }

        printf("%d",binarySearch(a, 100,0, 9));

    }

    return 0;

}


0 0
原创粉丝点击