二分算是比较高效的算法,分为二分查找和二分答案
二分查找
在排好序的数组中查找所需元素的位置,单次查找复杂度(log2n)
思想就是比较自己的值和中间值的大小,比mid大就向右区间二分,比mid小就向左区间二分,直到自己的值和左端点的值相等。
代码
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n; int k=0;
struct node{
int mark,ball;
}a[100001];
int cmp(node x,node y)
{
return x.ball<y.b

本文总结了二分算法的应用,包括二分查找和利用二分法寻找问题的答案。在有序数组中进行二分查找,单次查找复杂度为O(log2n)。在解决如洛谷p1918保龄球和p1182数列分段等题目时,通过二分答案判断其可行性,不断优化解的范围直至找到最佳解。

1751

被折叠的 条评论
为什么被折叠?



