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); }}