数据结构mooc学习

清华大学学堂在线  邓俊辉老师 deng@tsinghua.edu.cn

第1章 绪论


(a)计算

计算=信息处理

对象:规律,技巧     目标:高效,低耗

何为计算:借助某种工具,遵照一定规则,以明确而机械的形式进行。

计算模型=计算机=信息处理工具

算法:

输入:待处理的信息(问题)

输出:经处理的信息(答案)

正确性:的确可以解决指定的问题

确定性:任一算法都可以描述为一个有基本操作组成的序列

可行性:每一基本操作都可实现,且在常数时间内完成

有穷性:对于任何输入,经有穷次基本操作都可以得到输出

例子:Hailstone问题

什么是个好算法:正确,健壮,可读,

效率

Data Structure + Algorithms = Programs


(b)计算模型

成本:运行时间+存储空间

特定算法+不同实例, 以及,不同算法+特定实例

图灵机 Turing Machine

包括:纸带,读写头,Transition Function

(q,c,d,L/R,p) 表示若当前状态为q且当前字符为c,则将当前字符改写为d,转向左侧/右侧的邻格,转入p状态,一旦转入特定的终止状态 ‘h’ ,则停机。

例子:图灵机实例
RAM模型概念

在这些算法中,算法的运行时间成正比于算法需要执行的基本操作次数。

RAM模型的实例

执行过程可以记录为一张表,表的行数即是所执行的基本指令的总条数,能够客观度量算法的执行时间。

图灵机(TM),RAM等模型为度量算法性能提供了准确的尺度。


(c)大O记号(Big O Notation)  Paul Bachmann 1894  同阶无穷小

Mathematics is more in need of good notations than of new theorems. ----Alan Turing

长远,主流

渐进分析 Asymptotic analysis:

当n>>2后,对于规模为n输入,

算法需执行的基本操作次数:T(n)=??   需占用的存储单元数:S(n)=??

T(n) = O(f(n))  iff  存在 c>0,当 n>>2 后,有 T(n) < c*f(n) 。

O(1):常数复杂度,2=2017=...=2011111111=O(1)

O( (log n)c ),对数多项式的复杂度  (poly log function)

对数:O(log n)      ln n, lg n, ... ,  与对数的底数无关

常底数无所谓: 对任意的a,b,有 log(a)n=log(a)b*log(b)n=O( log(b)n )

常数次幂无所谓:对任意的c>0, (log n)c=c*log n=O(log n)

对于对数多项式而言,取对数多项式里面次数最高的项即可

此类算法非常有效,因为复杂度无限接近于常数。

对任意的c>0, n充分大时,O(log n)小于n的c次方。

O(n的c次方),多项式复杂度,polynomial function

O(2的n次方),指数(exponential function) 指数爆炸

这类算法的计算成本增长极快,通常被认为是不可忍受的,从O(n的c次方)O(2的n次方),

是从有效算法到无效算法的分水岭,很多问题的O(2的n次方)算法显而易见,

然而,设计出O(n的c次方)算法却极为不易,甚至,有时注定地只能是徒劳无功。

2-Subset 问题,美国大选实例

对于2-Subset 问题,

直觉算法:逐一枚举S集中的每一个子集,并统计其中元素的总和,须2的n次方轮。

亦即:在最坏的情况下,必须花费2的n次方的时间,不甚理想!

直觉提出的问题:是否有更好的算法?

定理:2-Subset is NP-complete

not Polynomial, 非多项式时间内完成

即:就目前的计算模型而言,不存在可以在多项式时间内回答此问题的算法,就此意义而言

上述的直觉算法已经属于最优。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • 算法和数据结构 [TOC] 算法 函数的增长 渐近记号 用来描述算法渐近运行时间的记号,根据定义域为自然数集$N=...
    wxainn阅读 1,056评论 0 0
  • 算法复杂度 时间复杂度 空间复杂度 什么是时间复杂度 算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗...
    KODIE阅读 3,238评论 0 9
  • 此笔记用于指导初学者阅读。原文在此!,出于便于交流的考虑,内容重放在此。由于作业部落支持LaTex公式,所以,更加...
    Bintou老师阅读 12,093评论 0 27
  • 由于项目中经常会有一些需求页面是,从底部弹出一个视图,在当前视图的上面,因此为了减少那些没必要的工作量,基于UIP...
    捷风阅读 3,557评论 0 4
  • 今天我大金陵又被淹了,躺在蜗居看周星星的功夫。“严格来讲我们就是卖唱的,一曲肝肠断,天涯何处觅知音”,以前的老电影...
    莫__天阅读 183评论 0 0