
算法导论
BI@忆~时&@
这个作者很懒,什么都没留下…
展开
-
算法导论---分治1(分治概念和一些简单算法例子)
分治策略: 将原始问题划分或者归结为规模较小的子问题 递归或迭代求解每个子问题 将子问题的解综合得到原问题的解 注: 子问题与原问题性质完全一样 子问题之间可彼此独立地求解 递归停止时子问题可直接求解 二分检索 设计思想: 通过x与中位数比较,将原问题归结为规模减半的子问题,如果x小于中位数,则子问题由小于x的数构成,否则子问题由大于x的数构成 对子问题进行二分检索 当子问题规模为1时,直接比较x与T[m],若相等则返回m,否则返回0 算法:BinarySearch(T,l,r,x) 输入:有序原创 2020-07-08 10:58:23 · 748 阅读 · 0 评论 -
算法导论---基础篇2(算法中的数学基础)
序列求和方法 公式法: 等差数列: 等比数列: 或 调和级数: 估计和式上界放大法: 1.粗略放大 2.假设存在常数r<1,使得对一切k>=0有ak+1/ak<=r成立: 通过积分估计渐进界: 例: 递推方程与求解方法 概念:设序列a0,a1,…,an,…,简记为{an},一个把an与某些个ai(i<n)联系起来的等式叫做关于序列{an}的递推方程 递推方程求解:给定关于序列{an}的递推方程和若干初值,计算an 例子:Fibonacci数 递推方程:fn=fn-1+f原创 2020-06-17 19:42:10 · 1603 阅读 · 0 评论 -
算法导论---基础篇1
基本概念 问题:需要回答的一般性提问,通常含有若干参数 问题描述: 定义问题参数(集合,变量,函数,序列等) 说明每个参数的取值范围及参数间的关系 定义问题的解 说明解满足的条件(优化目标或约束条件) 问题实例:参数的一组赋值可以得到问题的一个实例 算法:有限条指令的序列,这个指令序列确定了解决某个问题的一系列运算或操作 算法A解问题P: 把问题P的任何实例作为算法A的输入 每步计算是确定性的 A能够在有限步结束 输出为该实例的正确解 基本运算:比较,加法,乘法,置指针,交换等等 常用基本运算例子:原创 2020-06-16 17:35:17 · 1042 阅读 · 0 评论