二分法的常用模板

  • 第一种:

int low_bound(int A[],int n,int t)
{
	int i=0,j=n-1,m;
	while(i<=j)
	{
		m=i+(j-i)/2;
		if(t<=A[m])
		{
			j=m;
		}
		else
		{
			i=m+1;
		}
	}
	return i;
}

  • 第二种:

int upper_bound(int A[],int n,int t)
{
	int i=0,j=n-1,m;
	while(i<j)
	{
		m=i+(j-i)/2;
		if(t<A[m])
		{
			j=m;
		}
		else
		{
			i=m+1;
		}
	}
	return i;
}

只是用来当备忘录 : )

猜你喜欢

转载自blog.csdn.net/ycy040917/article/details/83546843
今日推荐