美文网首页
二分问题总结

二分问题总结

作者: crishawy | 来源:发表于2019-03-13 20:03 被阅读0次

二分问题思想

二分问题的显著特点是某问题给定一个特定的值K,求关于K的一个参数值,若该参数对K的影响是单调的,那么便可以使用二分法来逼近K,以求得准确的参数。

种类

1.二分查找

给定一集合,查找是否存在某数。

//二分查找,传入初值[0,n-1]
int binarySearch(int A[],int left,int right,int x)
{
    int mid;
    while(left <= right)
    {
        mid = (left + right) / 2;
        if(mid > x)
            right = mid - 1;
        else if(mid < x)
            left = mid + 1;
        else return mid;
    }
    return -1;
}

2.二分查找第一个满足条件的某数

//传入[0,n]
int lowerBound(int A[],int left,int right,int x)
{
    int mid;
    while(left < right)
    {
        mid = (left + right) / 2;
        if(mid >= x)
            right = mid;
        else
            left = mid + 1;
    }
    return left;
}

3.二分查找最后一个满足条件的某数

可以转换为求解第一个不满足该条件的解,然后将该解的位置减一即可

4.二分求值

double f(double x) // 给定f二分求解f(x)=0的根
{
    return ...;
}

double solve(double L,double R,double eps) //eps:精度
{
    double left = L,right = R,mid;
    while(right - left > eps)
    {
        mid = (left + right) / 2;
        if(f(mid) > 0)
            right = mid;
        else
            left = mid
    }
    return mid;
}

相关文章

  • 二分问题总结

    二分问题思想 二分问题的显著特点是某问题给定一个特定的值K,求关于K的一个参数值,若该参数对K的影响是单调的,那么...

  • 算法图解系列之二分查找[01]

    1.1 二分查找 1.2 二分查找的运行时间 1.3 大O表示法 1.4 总结

  • 吴恩达deeplearning.ai笔记神经网络和深度学习——神

    1.二分类问题 Logistic Regression就是一个二分类问题; 二分类问题的目标就是输入一个数据集,通...

  • 面试题

    面试题总结 1、算法问题,链表反转、二分搜索、深度搜索、广度搜索、常见算法 时间复杂度(大 O 表示) 2、OC相...

  • 二分搜索 分析

    二分搜索深入分析 二分小技巧 我们考虑二分问题 区间应该如何收缩的问题时应该把nums[mid]直接想象成数组中间...

  • LeetCode之Find First and Last Pos

    问题: 方法:先二分找起点,再二分找终点,算法复杂度即为O(log n),主要需要注意二分终止条件。 有问题随时沟...

  • 二分图基础知识

    前言:总结一下二分图相关的知识点 0X00 基础 判断是不是二分图 785. 判断二分图 DFS 遍历所有节点,遍...

  • Sklearn中二分类问题的交叉熵计算

    二分类问题的交叉熵   在二分类问题中,损失函数(loss function)为交叉熵(cross entropy...

  • 二分法模版总结(转载)

    二分题目总结 https://blog.bcmeng.com/post/binarysearch.html#las...

  • 机器学习-二分类转多分类

    之前研究的分类算法比如SVM,LR等,解决的都是二分类问题,那如果问题用有多个类别呢?二分类问题转多分类问题,常用...

网友评论

      本文标题:二分问题总结

      本文链接:https://www.haomeiwen.com/subject/bbxxmqtx.html