在博客看到一篇可以实现的代码,可以用的。记下链接,方便以后回顾。
这里是网址链接:/li_canhui/article/details/6820407
然后我自己改了一下,增加功能:可以自己输入排序好的数组。
#include <stdio.h>int main(){int a[200005];int m,i,n,wei,b;printf("输入排好序的整数个数:");scanf("%d",&m);printf("输入排好序的序列:\n");for(i=0;i<m;i++){scanf("%d",&a[i]);}printf("输入要查找的数字:");scanf("%d",&b);wei=binsearch(b,a,m);if(wei==-1){printf("没有找到该数字\n");}else{printf("查找到该数字的位置为:%d\n",wei);}return 0;}int binsearch(int x, int v[], int n){int low, high, mid;low = 0;high = n - 1;while ( low <= high ) {mid = (low + high) / 2;if(x < v[mid]){high = mid - 1;}else if(x > v[mid]){low = mid + 1;}else{return mid;}}return -1;}