




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Fundamentals of the Analysis of Algorithm Efficiency Algorithm analysis framework Asymptotic notations Analysis of non-recursive algorithms Analysis of recursive algorithms Copyright Li Zimao 2007-2008-1 SCUECExpected OutcomesThe students should be able toList the key steps in an algorithms analysis
2、 frameworkDefine the three asymptotic notations and explain their relationsCompare the asymptotic growth rate of two given functions by using the definition of asymptotic notation or LimitsDescribe the key steps in analysis of a non-recursive algorithm and a recursive algorithmUse different ways to
3、transform a recurrence relation into its closed formAnalyze the time complexity of recursive algorithm for computing the nth Fibonacci numberCopyright Li Zimao 2007-2008-1 SCUECAnalysis of AlgorithmsAnalysis of algorithms means to investigate an algorithms efficiency with respect to resources: runni
4、ng time and memory space. Time efficiency: how fast an algorithm runs. Space efficiency: the space an algorithm requires.Typically, algorithms run longer as the size of its input increasesWe are interested in how efficiency scales wrt input sizeCopyright Li Zimao 2007-2008-1 SCUECAnalysis FrameworkM
5、easuring an inputs sizeMeasuring running time Orders of growth (of the algorithms efficiency function)Worst-base, best-case and average-case efficiencyCopyright Li Zimao 2007-2008-1 SCUECMeasuring Input SizesEfficiency is defined as a function of input size.Input size depends on the problem.Example
6、1, what is the input size of the problem of sorting n numbers?Example 2, what is the input size of adding two n by n matrices?Copyright Li Zimao 2007-2008-1 SCUECUnits for Measuring Running TimeShould we measure the running time using standard unit of time measurements, such as seconds, minutes?Depe
7、nds on the speed of the computer.Count the number of times each of an algorithms operations is executed.Difficult and unnecessaryCount the number of times an algorithms basic operation is executed.Basic operation: the operation that contributes the most to the total running time. For example, the ba
8、sic operation is usually the most time-consuming operation in the algorithms innermost loop.Copyright Li Zimao 2007-2008-1 SCUECOrder of growth Most important: Order of growth within a constant multiple as nExample:How much faster will algorithm run on computer that is twice as fast?How much longer
9、does it take to solve problem of double input size?Copyright Li Zimao 2007-2008-1 SCUECInput size and basic operation examplesProblemInput size measureBasic operationSearching for key in a list of n itemsNumber of lists items, i.e. nKey comparisonMultiplication of two matricesMatrix dimensions or to
10、tal number of elementsMultiplication of two numbersChecking primality of a given integer nnsize = number of digits (in binary representation)DivisionTypical graph problem#vertices and/or edgesVisiting a vertex or traversing an edgeCopyright Li Zimao 2007-2008-1 SCUECTheoretical Analysis of Time Effi
11、ciencyTime efficiency is analyzed by determining the number of repetitions of the basic operation as a function of input size. running timeexecution timefor the basic operationNumber of times the basic operation is executedinput sizeT(n) copC (n)The efficiency analysis framework ignores the multipli
12、cative constants of C(n) and focuses on the orders of growth of the C(n).Assuming C(n) = (1/2)n(n-1), how much longer will the algorithm run if we double the input size?Copyright Li Zimao 2007-2008-1 SCUECOrders of GrowthOrders of growth: consider only the leading term of a formula ignore the consta
13、nt coefficient.Exponential-growth functionsCopyright Li Zimao 2007-2008-1 SCUECCopyright Li Zimao 2007-2008-1 SCUECWorst-Case, Best-Case, and Average-Case EfficiencyAlgorithm efficiency depends on the input size nFor some algorithms efficiency depends on type of input.Example: Sequential SearchProbl
14、em: Given a list of n elements and a search key K, find an element equal to K, if any.Algorithm: Scan the list and compare its successive elements with K until either a matching element is found (successful search) or the list is exhausted (unsuccessful search)Given a sequential search problem of an
15、 input size of n, what kind of input would make the running time the longest? How many key comparisons?Copyright Li Zimao 2007-2008-1 SCUECSequential Search AlgorithmALGORITHM SequentialSearch(A0.n-1, K)/Searches for a given value in a given array by sequential search/Input: An array A0.n-1 and a se
16、arch key K/Output: Returns the index of the first element of A that matches K or 1 if there are no matching elementsi 0while i n and Ai K doi i + 1if i =Copyright Li Zimao 2007-2008-1 SCUECSome Properties of Asymptotic Order of Growth f(n) O(f(n) f(n) O(g(n) iff g(n) (f(n) If f (n) O(g (n) and g(n)
17、O(h(n) , then f(n) O(h(n) Note similarity with a bIf f1(n) O(g1(n) and f2(n) O(g2(n) , then f1(n) + f2(n) O(maxg1(n), g2(n) The analogous assertions are true for the -notation and -notation.Copyright Li Zimao 2007-2008-1 SCUECSome Properties of Asymptotic Order of GrowthIf f1(n) O(g1(n) and f2(n) O(
18、g2(n) , then f1(n) + f2(n) O(maxg1(n), g2(n)Implication: The algorithms overall efficiency will be determined by the part with a larger order of growth.For example, 5n2 + 3nlogn O(n2)Copyright Li Zimao 2007-2008-1 SCUECUsing Limits for Comparing Orders of Growthlimn T(n)/g(n) = 0 order of growth of
19、T(n) 0 order of growth of T(n) = order of growth of g(n) order of growth of T(n) order of growth of g(n) Examples: 10n vs. 2n2 n(n+1)/2 vs. n2 logb n vs. logc nCopyright Li Zimao 2007-2008-1 SCUECLHpitals ruleIf limn f(n) = limn g(n) = and the derivatives f , g exist, Then f(n)g(n)limn= f (n)g (n)li
20、mn Example: log2n vs. n 2n vs. n!Stirlings formula: n! (2n)1/2 (n/e)nCopyright Li Zimao 2007-2008-1 SCUECOrders of growth of some important functionsAll logarithmic functions loga n belong to the same class (log n) no matter what the logarithms base a 1 is.All polynomials of the same degree k belong
21、 to the same class: aknk + ak-1nk-1 + + a0 (nk). Exponential functions an have different orders of growth for different as.order log n 0) order an order n! 0F(n) = 1if n = 0F(n) = n * F(n-1)if n 0if n=0 return 1/base caseelse return F (n -1) * n/general caseCopyright Li Zimao 2007-2008-1 SCUECExampl
22、e 1: Recursive evaluation of n ! Two Recurrences The one for the factorial function value: F(n)The one for number of multiplications to compute n!, M(n)F(n) = F(n 1) * n for every n 0F(0) = 1M(n) = M(n 1) + 1 for every n 0M(0) = 0M(n) (n)Copyright Li Zimao 2007-2008-1 SCUECSteps in Mathematical Anal
23、ysis of Recursive AlgorithmsDecide on parameter n indicating input sizeIdentify algorithms basic operationCheck whether the number of times the basic operation is executed may vary on different inputs of the same size. (If it may, the worst, average, and best cases must be investigated separately.)S
24、et up a recurrence relation and initial condition(s) for C(n)-the number of times the basic operation will be executed for an input of size n (alternatively count recursive calls). Solve the recurrence or estimate the order of magnitude of the solution by backward substitutions or another method (se
25、e Appendix B)Copyright Li Zimao 2007-2008-1 SCUECExample 2: The Tower of Hanoi PuzzleCopyright Li Zimao 2007-2008-1 SCUECThe Towers of Hanoi PuzzleRecurrence RelationsDenote the total number of moving as M(n)Succinctness vs. efficiencyM(n) = 2M(n 1) + 1 for every n 0M(1) = 1Be careful with recursive
26、 algorithms because their succinctness mask their inefficiency.M(n) (2n)Copyright Li Zimao 2007-2008-1 SCUECExample 3: Find the number of binary digits in the binary representation of a positive decimal integerCompute number of additions: A(n) = A(n/2)+1 with A(1) = 0Copyright Li Zimao 2007-2008-1 S
27、CUECSmoothness RuleLet f(n) be a nonnegative function defined on the set of natural numbers. f(n) is called smooth if it is eventually nondecreasing andf(2n) (f(n)Functions that do not grow too fast, including logn, n, nlogn, and n where =0 are smooth.Smoothness rule (Appendix B)let T(n) be an event
28、ually nondecreasing function and f(n) be a smooth function. If T(n) (f(n) for values of n that are powers of b, where b=2, then T(n) (f(n) for any n.A(n) = A(n/2)+1 with A(1) = 0 A(n) (log n) Copyright Li Zimao 2007-2008-1 SCUECIn fact, we can prove A(n) = log n is the solution to above recurrence.C
29、opyright Li Zimao 2007-2008-1 SCUECFibonacci numbersThe Fibonacci numbers:0, 1, 1, 2, 3, 5, 8, 13, 21, The Fibonacci recurrence:F(n) = F(n-1) + F(n-2) F(0) = 0 F(1) = 1General 2nd order linear homogeneous recurrence with constant coefficients: aX(n) + bX(n-1) + cX(n-2) = 0Copyright Li Zimao 2007-200
30、8-1 SCUECSolving aX(n) + bX(n-1) + cX(n-2) = 0Set up the characteristic equation (quadratic) ar2 + br + c = 0Solve to obtain roots r1 and r2General solution to the recurrenceif r1 and r2 are two distinct real roots: X(n) = r1n + r2nif r1 = r2 = r are two equal real roots: X(n) = rn + nr nParticular
31、solution can be found by using initial conditionsCopyright Li Zimao 2007-2008-1 SCUECApplication to the Fibonacci numbersF(n) = F(n-1) + F(n-2) or F(n) - F(n-1) - F(n-2) = 0Characteristic equation: Roots of the characteristic equation:General solution to the recurrence:Particular solution for F(0) =
32、0, F(1)=1:Copyright Li Zimao 2007-2008-1 SCUECGolden RatioCopyright Li Zimao 2007-2008-1 SCUECEfficiency for Recursive Computation of Fibonacci NumberNumber of additions:A(n) = A(n-1) + A(n-2) + 1 for n 1A(0) = 0, A(1) = 0 A(n) = F(n+1) 1 (n)Copyright Li Zimao 2007-2008-1 SCUECComputing Fibonacci nu
33、mbersDefinition-based recursive algorithm (n)Nonrecursive definition-based algorithm (n)Explicit formula algorithmLogarithmic algorithm based on formula: (log n)F(n-1) F(n)F(n) F(n+1)0 11 1=nfor n1, assuming an efficient way of computing matrix powers.Copyright Li Zimao 2007-2008-1 SCUECImportant Recurrence TypesDecrease-by-one recurrencesA decrease-by-one algorithm solves a problem by exploiting a relationship between a given instance of size n and a smaller size n 1. Example: n!The recurrence equation for investigating the ti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国再保险行业市场分析及竞争形势与发展前景预测报告
- 2025至2030中国住宅门行业市场深度研究及发展前景投资可行性分析报告
- 2025至2030中国休闲鞋垫行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国休闲便服行业发展趋势及有效策略与实施路径评估报告
- 2025至2030中国乙烯行业应用动态及投资盈利研究报告
- 按揭政策课件
- 2025至2030中国专用汽车行业市场占有率及投资前景评估规划报告
- 2025至2030中国一氯乙酸(MCAA)行业市场深度研究及发展前景投资可行性分析报告
- 2025至2030中医产业发展分析及发展趋势与投资前景预测报告
- 指南针的课件
- 2025湖南中考:物理高频考点
- 转台技术协议书范本
- 2025年江西省金控科技产业集团社会招聘4人(第一批次)笔试参考题库附带答案详解
- AI与VR在麻醉教学中的应用及个性化学习路径探讨
- 《地球物理测井技术》课件2
- 《流域演化特征》课件
- 2025年自来水笔试题及答案
- 广东省深圳市福田区耀华实验学校2025年六年级下学期5月模拟预测数学试题含解析
- 2025年安徽中医药高等专科学校单招职业适应性测试题库有答案
- 2025年山东省威海市市属事业单位招聘(综合类)考试笔试高频重点模拟试卷提升(共500题附带答案详解)
- 成绩单申请书
评论
0/150
提交评论