一. 函数描述
自定义一个函数,传入数组名、数组元素个数和需要查找的数字,用二分实现该数字的查找。找到了返回元素的下标,找不到返回-1。
二. 函数实现:
int BinarySearch(int* p, int n, int num)// p:数组首元素地址 n:数组的元素个数 num:需要查找的数字 { int left = 0;// 左区间下标 int right = n - 1;// 右区间下标 //开始查找,并更新左右区间下标 while (left <= right) { int mid = left + (right-left)/2; if (num > p[mid]) left = mid+1; else if (num < p[mid]) right = mid-1; else return mid; } return -1; }
ps:传入的数组元素必须是顺序排好序的,若逆序排列则将left=mid+1和right=mid-1位置调换即可。