数据结构·2018-09-23

第一章

第二节 计算模型

2.4图灵机(TM)

图灵机就是作为我们分析问题的理想模型的一个案例,它由无限长的纸带,有限的字母表,有限种状态,读写头组成。

Transition Function (当前状态,当前字符;改写的目标字符,向左/向右,转入的状态)

当转入的状态为“h”,则停机。

2.5接口

当我们对图灵机做一些操作后。每次完成要把读写头复位到最初的位置停机,因为它本身以后会成为一个算法是一部分,这个算法在调用他之前有严格的规范,这种规范以后就成为大家合作时的一个准则,这种规范,更多是以 “接口” 的形式给出了,这就是“接口” 的影子。

2.6RAM

与TM模型一样,RAM模型为算法提供一个平台,在这个独立的平台上,大家有统一 的标准,对于算法的效率的评判更加可信。

在这些 模型上算法的运行时间跟其在平台上的基本操作次数程线性关系,所以我们这时可以将:T(n) = 算法在求解运算规模为n的问题时,在平台上所需的基本操作次数。

2.7 RAM实例

功能:向下取整的除法,0<= c, 1 <d;

[ c/d ]  = max { x | d.x <= c }

           = max { x | d.x <= c }

这里我不想把例子照抄下来,我是想让你明白:懂得问题的等价转化是多么的重要,我们拿到这个问题,大脑就是一片空白,什么都想不到。

但别人就知道如何等价转化,知道设未知数x,x是c一次一次减去d,直到小于零的次数,这个次数,就是我们要得到的整数值。

这恐怕是算法界的基本转化问题的操作,学过数学的都应该懂得转化问题的重要性,你以后要多多注意去培养这个思维,不然写程序这条路,肯定没法走下去。

也就是数学。

第三节 大O记号

3.1大O记号

1. 对于算法的复杂度,常系数项可以忽略,底次项也可以忽略,只需计入O(n^x)即可。

2. O(n)是对T(n)的最差估计,Ω(n)是对T(n)的最好估计,Θ(n)是所谓对T(n)的等效估计。

3.2复杂度

1.O(1)复杂度 (高效解)

算法不含转向(循环,调用,递归等)必顺序执行,复杂度为O(1),但含有循环,调用,递归未必复杂度就不为O(1)这还要视具体情况而定。

2.O(log n)复杂度(高效解)

    1.常底数无所谓:logb n = logb a . logan ,而logb a是无所谓的,所以常数底都是无所谓的

    2.常数次幂无所谓 log n^c = c.log n = Θ(log n) 所以log内的n次幂也是无所谓的

    3.对数多项式 (log n)^234+(log (n^2+n+3))^125  =  Θ(log n)^234

    4.复杂度为log n 的算法实际非常高效,因为从渐近的意义上讲,log n实际是无限接近于一       个常数的,也就是O(1)的,所以说它也算法高效的一个标志。

3.O(n^c)复杂度 (有效解)

多项式:

100n + 200 = O(n)

(100n  - 500)(20n^2 - 300n + 2013) = O(n*n^2) = O(n^3)   //看过高次项以后,之后直接抹掉底次项就是,更快的得到结果。

(2013n^2  -  20)/(1999n  - 1) = O(n^2 / n) = O(n)

一般的:a n^k + a n^k-1 + ....+ an + a = O(n^k)  ; a>0

线性:所有O(n)类函数

从O(n)到O(n^2)  :  编程习题的主要覆盖范围

幂:((n^2013  -  24n^2003)^1/3  - 512n^567  - 1987n^122  )  =  O(n^61)

4.O(2^n)(难解)

n^c  = O(2^n)

n^1000 = O(1.00001^n) = O(2^n)

1.0001^n = Ω(n^1000)   //可以看到,n的高次幂和2^n没有明显的分界,可以把n的高次视为指数幂的下界。

第四节 算法分析

目标即是通过之前的计算模型和大O记号来对算法进行分析两个任务:正确性 + 复杂性

4.1级数

算术级数:与末项平方同阶

T(n)   =  1 + 2 + .....+  n   =  n(n+1)/2  =  O(n^2)

幂放级数 : 比幂次高一阶 

T(n) = 1^2 + 2^2 + 3^2 + ....+ n^2 = n(n+1)(2n+1)/6  =  O(n^3)

T(n) = 1^3 + 2^3 + 3^3 + ....+ n^3 = n^2(n+1)^2/4  =  O(n^4)

集合级数 :于末项同阶

Ta(n)  = a^0 + a^1+...+a^n  = (a^n+1  -  1)/(a - 1)  = O (a^n)

收敛级数

1 + 1/2 +1/2^2 + ....+ 1/n^2 <  1+  1/2^2 = π^2/6 = O(n)

投硬币级数:(1 - λ)(1 + 2λ+3λ^2+4λ^3+...)  = 1/(1 - λ) = O(1)

可能未必收敛,然而长度有限

调和级数:h(n) = 1 + 1/2 + 1/3 + ....+ 1/n = Θ(logn)

log1 + log2 + log3 + ... + logn  = log (n!)  = Θ (nlogn)

4.2循环

例一:

for(int i = 0; i<n ; i++)

for(int j = 0; j< n ; j++)

01Operation(i, j );

图解:

算术计数:

例二

for (i = 0; i <n ; i++)

for (j = o; j <i  ; j++) //与j增长 的步长没有关系一次加2018都没关系

01Operation(i,j);

图解:

算术级数:


例三:

for(int i = 0; i<n ; i << = 1)

for(int j = 0; j< i ; j++)

01Operation(i, j );

几何级数:

1 + 2 + 4 + 。。。+ 2^[log2(n-1)]  =  2^[log2n] -1= O(n)

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

推荐阅读更多精彩内容

  • 亲爱的果果: 妈妈每天要做的事情都很多,总有一种时间怎么也不够的感觉,有时候在想,是不是应该更早一点起床?是不是应...
    热带毛毛虫阅读 243评论 0 1
  • 观影《微微一笑很倾城》:谈一场势均力敌的爱情 01 今年观影以来,我唯一一次赶上的首映就是这部甜到苏的《微微一笑很...
    麦芽余鱼阅读 6,935评论 97 116
  • 去年在warfalcon的公众订阅号里看到一篇文章,记不住人名了,刚才找了半天才找到,所以一定要做笔记啊!引以为鉴...
    亦如是阅读 334评论 0 1
  • 努力学习的日子总是充实的,早晨叫醒我的不是闹铃而且满满的计划。 看到很多大神在微博里晒的成绩,让我羡慕到眼睛里冒星...
    判断怪的树洞阅读 272评论 0 0