☰
二分查找(折半查找)
2026/10/18 4:15:55 网站建设 项目流程

一.下标公式

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("找不到")

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询