// // BinarySearch.c // libin // // Created by 李宾 on 16/4/28. // Copyright © 2016年 李宾. All rights reserved. // #include <stdio.h> //非递归 int Binary_Search(int a[], int low, int high, int key) { while (low <= high) { int mid = (low + high)/2; if(a[mid] == key) { return mid; } else if(a[mid] < key) { low = mid + 1; } else high = mid - 1; }
return -1; } //递归 int Binary_Search1(int a[], int low, int high, int key) {
if(low > high)
{
return -1;
}
int mid = (low + high)/2;
if (a[mid] == key )
{ return mid; } else if(a[mid] < key) { return Binary_Search1(a, mid+1, high, key); } else return Binary_Search1(a, mid, high-1, key); } } int main() { int a[6] = {1, 23, 33, 45, 56, 65}; Binary_Search1(a, 0, 5, 34); }