Raize 6.1.1.12 DX10.1 在 Delphi 10.2 Berlin 下的安装与避坑指南
2026/10/18 5:12:56
1.(left+right)/ 2 = mid
2.新left = mid + 1 (小于值)
3.新right = mid - 1 (大于值)
4.数组下标最大值sizeof(arr)/sizeof(arr[0])-1
n个元素至多查找log2 n 次
数列是升序
intarr[]={1,2,3,4,5,6,7,8,9,10};intleft=0;intright=sizeof(arr)/sizeof(arr[0])-1;intmid=(left+right)/2;//若用left / 2 + right / 2(两个都是奇数不行)//更精确时用(right - left) / 2 + left(避免值会超过INT_MAX出现问题)intneed=0;while(right>=left){if(arr[mid]<need)left=mid+1;elseif(arr[mid]>need)right=mid-1;elseprintf("找到了")break;}if(left>right)printf("找不到")