【算法概论】0.序言

0.2 Fibonacci数列

  • 一个指数算法,复杂度$T(n) \ge F(n) $
function fib1(n)
    if n=0:return 0
    if n=1:return 1
    return fib1(n-1)+fib1(n-2)
  • 一个多项式算法
function fib2(n)
    if n=1:return 0
    create an array f[0...n]
    f[0]=0,f[1]=1
    for i=2...n:
        f[i]=f[i-1]+f[i-2]
    reutrn f[n]

原文地址:https://www.cnblogs.com/seastargreen/p/10368490.html

时间: 2024-10-13 23:51:01

【算法概论】0.序言的相关文章

普林斯顿公开课:算法第0章,课程介绍

课程介绍 这门课程核心内容是算法和数据结构. 具体的算法和数据结构如下: 数据类型:堆栈.队列.背包.并查集.优先队列. 排序:快排.并排.堆排.基数排序 查找:BST.红黑BST.哈希表 图:BFS.DFS.Prim.Kruskai.Dijkstra 字符串:KMP.正则.TST.哈夫曼.LZW 高级:B树.后缀数组.最大流 为什么要学习算法 算法在各个领域中都有应用. 算法可以提高编程效率. 算法可以将现实生活中的物理公式转换成代码,算法可以模拟现实世界,然后发现世界的奥秘. 算法是很有趣的

为了打击网站被黑作弊行为,360搜索上线悟空算法2.0

我们在搜索浏览网页的时候,经常会出现正常网页跳转至含有色情,博彩等信息的恶意站点上去.这样严重影响到了用户的搜索体验,为了打击此类行为,360搜索正式上线了:"悟空算法2.0" 网站被黑是一种较为常见的现象,很多人通过黑客手段代码劫持,对正常的站点进行了恶意行为,现在这种现象更加的明显,这次上线的悟空算法在公告中显示:能更加准确快速地识别各种网站被黑客攻击的行为,降低恶意网站在搜索引擎中的不良展现和对用户的影响,严厉打击此类针对360搜索的作弊行为. 同时360搜索页提供了多种查杀工具

动态规划算法求解0,1背包问题

首先我们来看看动态规划的四个步骤: 1. 找出最优解的性质,并且刻画其结构特性: 2. 递归的定义最优解: 3. 以自底向上的方式刻画最优值: 4. 根据计算最优值时候得到的信息,构造最优解 其中改进的动态规划算法:备忘录法,是以自顶向下的方式刻画最优值,对于动态规划方法和备忘录方法,两者的使用情况如下: 一般来讲,当一个问题的所有子问题都至少要解一次时,使用动态规划算法比使用备忘录方法好.此时,动态规划算法没有任何多余的计算.同时,对于许多问题,常常可以利用其规则的表格存取方式,减少动态规划算

百度冰桶算法2.0简介

百度的各种算法的出台,其目的只有一个就是提高用户的体验度,用户体验好了,那么baidu就会重点关注网站,将其相关关键词更好的呈现给访问者,这就是为何大家一直青睐baidu,但是又不喜欢其的道理,因为其规律总是变化无穷,仍追求者需要不断的调整步伐. 那么随着手机移动端的市场到来,其占有率已经不可阻挡的成为了超过pc端的又一新起领域,而baidu的冰桶算法针对手机移动端,在全球估计也就只有guge了,而国内虽然pc端移动搜索市场其份额在不断的下滑,但是baidu注重移动端的结果,目前已经占据了市场绝

算法 - 算法概论

序言 Fibonacci 数列 多项式时间算法: var fib_arr = [0, 1]; function fib(n){ if(n == 0){ return 0; }else if(n == 1){ return 1; } for (var i = 0; i < n-2; i++) { fib_arr[n+2] = fib_arr[n+1] + fib_arr[n] } return fib_arr[n] } var start = new Date().getTime(); conso

c语言经典算法—求0—7 所能组成的奇数个数

题目:求0—7 所能组成的奇数个数. 算法思想:这个问题其实是一个排列组合的问题,设这个数为sun=a1a2a3a4a5a6a7a8,a1-a8表示这个数的某位的数值,当一个数的最后一位为奇数时,那么这个数一定为奇数,不管前面几位是什么数字.如果最后一位数为偶数,则这个数一定为偶数.a1-a8可以取0-7这个八个数字,首位数字不为0.从该数为一位数到该数为8位数开始统计奇数的个数:1.当只有一位数时也就是该数的最后一位,奇数个数为42.当该数为两位数时,奇数个数为4*7=283.当该数为三位数时

机器学习&amp;深度学习基础(tensorflow版本实现的算法概述0)

tensorflow集成和实现了各种机器学习基础的算法,可以直接调用. 监督学习 1)决策树(Decision Tree) 决策树是一种树形结构,为人们提供决策依据,决策树可以用来回答yes和no问题,它通过树形结构将各种情况组合都表示出来,每个分支表示一次选择(选择yes还是no),直到所有选择都进行完毕,最终给出正确答案. 决策树(decision tree)是一个树结构(可以是二叉树或非二叉树).在实际构造决策树时,通常要进行剪枝,这时为了处理由于数据中的噪声和离群点导致的过分拟合问题.剪

第十三个算法-移动0

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组. 尽量减少操作次数. 思路: 1,头一看,思路很简单,直接后移就可以了.判断一下数据,如果为0 就循环向后移动. 2,思路也对,就是判断少了,如果连续两个0呢?立马歇菜. 代码: public void moveZeroes(int[] nums) { int i ,y =0;

《算法概论》第八章的一些课后题目 关于NP-Complete Problem

8.3 STINGY SAT STINGY SAT is the following problem: given a set of clauses (each a disjunction of literals) and an integer k, find a satisfying assignment in which at most k variables are true, if such an assignment exists. Prove that STINGY SAT is N