📂ACM
🔖二分
2022-11-19 20:23阅读: 20评论: 0推荐: 0

二分查找

在单调递增序列a中查找>=x的数中最小的一个(即x或x的后继)
while(l<r) { 
    int mid=(l+r)/2; 
	if(a[mid]>=x) 
	    r=mid; 
	else l=mid+1;
	}
return a[l];

在单调递增序列a中查找<=x的数中最大的一个(即x或x的前驱)
while(l<r) { 
    int mid=(l+r+1)/2; 
	if(a[mid]<=x)
	    l=mid; 
	else r=mid-1;
	}
return a[l];

本文作者:风归去

本文链接:https://www.cnblogs.com/N-lim/p/16906953.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   风归去  阅读(20)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑