Binary Search Implementation

来源:互联网 发布:国家旅游局数据统计 编辑:程序博客网 时间:2024/05/16 18:36
#include <stdio.h>#include <stdlib.h>int binarySearch();int binarySearchRecursive(int a[], int start, int end, int target);int main(){    int a[5] = {2,8,9,13,21};    int pos1 = binarySearch(a, 5, 6);    printf("%d\n", pos1);    int pos2 = binarySearchRecursive(a,0,4,6);    printf("%d\n", pos2);    return 0;}//Iterativeint binarySearch(int a[], int n, int target){    int low = 0;    int high = n - 1;    int mid;    while(low <= high){        mid = (low + high)/2;        if(a[mid] == target){            return mid;        }else if(a[mid] > target){            high = mid - 1;        }else{            low = mid + 1;        }    }    return -1;}//Recursiveint binarySearchRecursive(int a[], int start, int end, int target){    if(start > end){        return -1;    }    int mid = start + (end - start)/2;    if(a[mid] == target){        return mid;    }else if(a[mid] > target){        return binarySearchRecursive(a, start, mid - 1, target);    }else{        return binarySearchRecursive(a, mid+1, end, target);    }}