算法笔记(一)

尺取法(二分法)有两种扫描方向:

(1)反向扫描:

        i和j方向相反,i从头到尾,j从尾到头,在中间相会

(2)同向扫描:

        i和j方向相同,都从头到尾,但是速度不同

        实际上在这里也可以使用多指针--比如--"洛谷P1102 A-B数对";

三分法分为两种:


前提:所解决的函数是单调递增的函数


<1>三等分法: mid1,mid2各取左侧和右侧的三等分点

例题:洛谷P3382实数三分法

有以下几种情况:

(1)mid1<mid2

        此时又含有两种情况--mid2在解左侧,mid2在解右侧
                    但无论哪种情况,解始终在mid1右侧,
                    此时让mid1成为新的L;R不变,继续三分的过程

(2)mid1>mid2

        此时又含有两种情况--mid1在解左侧,mid1在解右侧
                    但无论哪种情况,解始终在mid2左侧,
                    此时让mid2成为新的R;L不变,继续三分的过程


<2>近似三等分法:mid1和mid2分别取到(L+R)/2--也就是中间点左侧或右侧的一个点,然后按照三等分的方法继续向下搜查

        ps:也许你会感到迷惑--为什么可以直接确定解在mid1和mid2哪一侧?--请记得我们的前提--我们所计算的函数均为单调函数

P1102 A-B 数对 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)icon-default.png?t=N7T8https://www.luogu.com.cn/problem/P1102P3382 【模板】三分法 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)icon-default.png?t=N7T8https://www.luogu.com.cn/problem/P3382

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值