二分(折半)查找
/** * 递归实现二分查找 */int recurBinarySearch(dataType searchValue, dataType data[], int start,int end){if (start <= end){int mid = (end + start) / 2;if (searchValue == data[mid])return mid;else if (searchValue < data[mid])return recurBinarySearch(searchValue, data, start, mid);elsereturn recurBinarySearch(searchValue, data, mid + 1, end);}return -1;}/** * 线性查找 */int normalBinarySearch(dataType searchValue, dataType data[], int start,int end){while (start <= end){int middle = (start + end) / 2;if (searchValue < data[middle])end = middle;else if (searchValue > data[middle])start = middle + 1;elsereturn middle;}return -1;}/** * 二分查找,找到返回所在数组的下标;没找到返回-1 */int binarySearch(dataType searchValue, dataType data[], int len){//return recurBinarySearch(searchValue, data, 0, len - 1);return normalBinarySearch(searchValue, data, 0, len - 1);}?