二分查找. (代码可在五行以内)
算法要求在五行之内写出二分查找,我用了6行,不知道有高手可以用五行写出来不:
#include<stdio.h>#include<stdlib.h>int a[]={10,22,42,51,56,63,78,99,102,118};int binary_search(int low, int high, int key) {if(low > high)return -1;int mid = low + (high - low) / 2;if(a[mid] == key)return mid;return (a[mid] > key ? binary_search(low, mid-1, key) : binary_search(mid+1, high, key));}void main() {int result = binary_search(0, sizeof(a)/sizeof(int), 102);printf("%d\n",a[result]);}