标签:eof while inf image main TE 技术 版本 sea
一、C 程序实现
/******************************************************************************************* *Description 二分查找算法 *Author liaoxiongxiong *Version 1.0 *Time 2018-04-28 *******************************************************************************************/ #include <stdio.h> //二分查找,版本1 int BinarySearch1(int a[], int value, int n) { int low, high, mid; low = 0; high = n-1; while(low<=high) { mid = (low+high)/2; if(a[mid] == value) return mid; if(a[mid]>value) high = mid-1; if(a[mid]<value) low = mid+1; } return -1; } //二分查找,版本2,递归版本 int BinarySearch2(int a[], int value, int low, int high) { int mid = low+(high-low)/2; if(a[mid]==value) return mid; if(a[mid]>value) return BinarySearch2(a, value, low, mid-1); if(a[mid]<value) return BinarySearch2(a, value, mid+1, high); } //测试用例 int main() { int a[]={0,1,2,3,4,5,6,7,8,9}; int len = sizeof(a)/sizeof(a[0]); int x=2; // 需要查找的元素 int i = BinarySearch2(a, x, 0, len); if(i!=-1) printf("元素 %d 在第 %d 个位置\n",x,i+1); else printf("没有找到元素:%d\n",x); return 0; }
运行结果:
标签:eof while inf image main TE 技术 版本 sea
原文地址:https://www.cnblogs.com/shujuxiong/p/9240082.html