1.引言-东南大学计算机学院.ppt
文本预览下载声明
算法性能分析与度量 算法的时间复杂度 大O表示法:若存在两个正的常数c和n0,对于任意n≥n0,都有T(n) ≤ c×f(n),则称T(n)=O(f(n)) * n0 问题规模n 执行次数 n0之前的情况无关紧要 T(n) c×f(n) 表示当问题规模充分大时 在渐进意义下的阶 算法性能分析与度量 算法的时间复杂度 大O表示法:若存在两个正的常数c和n0,对于任意n≥n0,都有T(n) ≤ c×f(n),则称T(n)=O(f(n)) 例1:T(n) = 3n+2 当n≥2时,3n+2 ≤ 3n+n = 4n 因此T(n)=O(n) * 算法性能分析与度量 算法的时间复杂度 大O表示法:若存在两个正的常数c和n0,对于任意n≥n0,都有T(n) ≤ c×f(n),则称T(n)=O(f(n)) 例2:T(n) = 10n2+4n+2 当n≥2时,10n2+4n+2 ≤ 10n2+5n 又有当n≥5时,10n2+5n ≤ 10n2+n2 = 11n2 因此T(n)=O(n2) * 算法性能分析与度量 算法的时间复杂度 大O表示法:若存在两个正的常数c和n0,对于任意n≥n0,都有T(n) ≤ c×f(n),则称T(n)=O(f(n)) 作业:求解T(n) = amnm+am-1nm-1+ ??? a2n2+a1n+a0,并给出证明过程 * 算法性能分析与度量 算法的时间复杂度 T(n)=O(f(n)) 若存在两个正的常数c和n0,对于任意n≥n0,都有T(n) ≤ c×f(n),则称T(n)=O(f(n)) 给出算法复杂度的上界,不可能比c*f(n)更大 例:T(n) = 6*2n+n2 当n≥4时,6*2n+n2 ≤ 6*2n+2n = 7*2n 因此T(n)=O(2n) * 算法性能分析与度量 算法的时间复杂度 T(n)=Ω(f(n)) 若存在c 0,和正整数n0≥1,使得当n≥n0时,有T(n)≥c*f(n)成立。 给出算法复杂度的下界,不可能比c*f(n)更小 例: T(n)=3n3+2n2,取c=3,n0=1,f(n)=n3,则当 n≥n0(=1)时,有3n3+2n2≥3n3,∴T(n)=Ω(n3) * 算法性能分析与度量 算法的时间复杂度 T(n)=?(f(n)) 若存在c1,c20,和正整数n0≥1,使得当n≥n0时,总有 T(n)≤c1*f(n)且T(n)≥c2*f(n)成立,即T(n)=O(f(n))与T(n)=Ω(f(n))都成立。 给出了算法时间复杂度的上界和下界 e.g.T(n)= 3n3+2n2,c1=5,取c2=3,n0=1,f(n)=n3,则当n≥n0(=1)时,有3n3+2n2≤5n3及3n3+2n2≥3n3(无穷多个),∴T(n)= ? (n3) * 算法性能分析与度量 算法的时间复杂度 常见的时间复杂度 Ο(1)≤Ο(log2n) ≤Ο(n) ≤Ο(nlog2n) ≤Ο(n2) ≤Ο(n3) ≤…≤Ο(2n) ≤Ο(n!) * T(n) n 0 2n n3 n n2 logn 算法性能分析与度量 算法的空间复杂度 指算法在执行过程中所需最大存储空间 空间复杂性的渐进分析 * S(n)=O(f(n)) O(log2n) ?= O(log3n) O(2n) ?= O(3n) 狭义上,信息是符号的排列的顺序(来自wiki) 一般指数据、消息中所包含的意义(来自wiki) * 狭义上,信息是符号的排列的顺序(来自wiki) 一般指数据、消息中所包含的意义(来自wiki) * 狭义上,信息是符号的排列的顺序(来自wiki) 一般指数据、消息中所包含的意义(来自wiki) * 狭义上,信息是符号的排列的顺序(来自wiki) 一般指数据、消息中所包含的意义(来自wiki) * 令m=kn+r,假设x是(m,n)的公约数,则x也可以被r整除,因此也是(n,r)的公约数 反之有假设x是(n,r)的公约数,x也是(m,n)的公约数。因此是等价的 * 令m=kn+r,假设x是(m,n)的公约数,则x也可以被r整除,因此也是(n,r)的公约数 反之有假设x是(n,r)的公约数,x也是(m,n)的公约数。因此是等价的 * * 数据结构 东南大学计算机学院 方效林 本课件借鉴了清华大学殷人昆老师 和哈尔滨工业大学张岩老师的课件 课程说明 课程编号授课学时:32学时(1至16周,2学时/周) 课程分类:选修 答疑地点:计算机楼532,每周1次(周一上午) 考核形式: 期末笔试80%+平时成绩20% 期末考试实行开卷方式 作业: 从布置作业起,到下一次课前两天(周日23:00) 电子版,提交到教务处网站上的课程中心 文件命名肖迪),文件格式(.pdf、.doc、.do
显示全部