int search_num(int arry[], int len, int elem){int low = 0, mid = 0, high = 0;high = len -1;//最大下标while(low <= high){mid = (low + high) / 2;if((arry[mid] == elem) && (arry[mid-1] < elem)) return mid;//与折半查找相比,加了前一个数组值的比较,确保要查找的数在数组首次出现else if(arry[mid] <= elem) high = mid -1;//比较中多了个“=”,确保在重复数中进行前推查找else if(arry[mid] > elem) low = mid + 1;//在大数部分和折半查找一致}printf("elem: %d 在数组中不存在.\n", elem);return 0;}
(核心算法)查找某个数在有序数组中(递增,含重复)第一次出现的下标
最新推荐文章于 2024-04-20 15:12:32 发布