折半查找法&二分查找法
1 int main(){ 2 int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 3 int sz = sizeof(arr) / sizeof(arr[0]);用于计算数组中的元素个数 4 int left = 0,right =sz-1 ; 5 int k = 7; 6 while (left <= right)只有当两个数之间有交集是才能运算 7 { 8 int mid = (left + right) / 2; 9 if (arr[mid] > k) 10 { 11 right = mid - 1; 12 } 13 else if (arr[mid] < k) 14 { 15 left = mid + 1; 16 } 17 else 18 { 19 printf("找到了,下标是%d\n", mid); 20 break; 21 } 22 } 23 if (left>right) 24 printf("找不到\n"); 25 return 0; 26 }//结果为:找到了下标是6
思路:表中元素是按升序排列(一定是按照顺序排列),将表中间位置(mid)记录的
浙公网安备 33010602011771号