算法导论:第一章 1.2 算法分析
2012-03-11 00:58
302 查看
算法分析 概念:
算法分析即指对一个算法所需的资源进行预测。一般来说,资源是指计算时间,有时也指存储器、通信带宽或逻辑门等。给定一个问题后,通过分析几种候选算法,可以从中选出一个最有效的算法。
插入排序算法的分析
INSERTION-SORT过程的时间开销与输入有关:排序1000个数的时间比排序三个数的时间要长。即使排序两个相同长度的输入序列的时间也有可能不同,这取决于它们已排序的程度。算法所需的时间是与输入规模同步增长的。
最坏情况和平均情况分析:
算法的最坏情况运行时间是在任何输入下的运行时间的上界,这就保证算法的运行时间不会比它更长。(目前还不太理解)
平均情况的时间性态常常与最坏情况下的大致一样。如:随机取n个数进行插入排序。要找到元素A[J],在子数组A[1...J]中的位子要花多久?平均来说是 J/2 。我们假定一个特定规模下的所输入的“平均性”都是一样的,在实际中可能要违反这个假设,但采用随机算法就可以强制这点成立。
增长的量级:
为了简化对INSERTION_SORT的分析,我们做了简化抽象,忽略了每条语句的真实代价,用C1来表示。
我们在进一步简化抽象 an2+bn+c 我们只考虑公式中的最高次项当an2 当n很大时低阶项相对来说不太重要,还忽略最高次项的常熟系数,应为在考虑规模输入下的计算效率时相对于增长率来说,系数是次要的。
如果一个算法的最坏情况运行时间的阶要比另外一个算法的低,我们认为它更为有效。在输入的规模较小时,这种看法有时不对,但对足够大的规模的输入来说,一个具有Θ(n2)的算法在最坏情况下比阶Θ(n3)的算法运行的更快。
算法分析即指对一个算法所需的资源进行预测。一般来说,资源是指计算时间,有时也指存储器、通信带宽或逻辑门等。给定一个问题后,通过分析几种候选算法,可以从中选出一个最有效的算法。
插入排序算法的分析
INSERTION-SORT过程的时间开销与输入有关:排序1000个数的时间比排序三个数的时间要长。即使排序两个相同长度的输入序列的时间也有可能不同,这取决于它们已排序的程度。算法所需的时间是与输入规模同步增长的。
最坏情况和平均情况分析:
算法的最坏情况运行时间是在任何输入下的运行时间的上界,这就保证算法的运行时间不会比它更长。(目前还不太理解)
平均情况的时间性态常常与最坏情况下的大致一样。如:随机取n个数进行插入排序。要找到元素A[J],在子数组A[1...J]中的位子要花多久?平均来说是 J/2 。我们假定一个特定规模下的所输入的“平均性”都是一样的,在实际中可能要违反这个假设,但采用随机算法就可以强制这点成立。
增长的量级:
为了简化对INSERTION_SORT的分析,我们做了简化抽象,忽略了每条语句的真实代价,用C1来表示。
我们在进一步简化抽象 an2+bn+c 我们只考虑公式中的最高次项当an2 当n很大时低阶项相对来说不太重要,还忽略最高次项的常熟系数,应为在考虑规模输入下的计算效率时相对于增长率来说,系数是次要的。
如果一个算法的最坏情况运行时间的阶要比另外一个算法的低,我们认为它更为有效。在输入的规模较小时,这种看法有时不对,但对足够大的规模的输入来说,一个具有Θ(n2)的算法在最坏情况下比阶Θ(n3)的算法运行的更快。
相关文章推荐
- 算法设计与分析:第一张 算法分析介绍 1.2逻辑推理之警察抓小偷
- 算法导论(四)——算法和分析技术
- 对《悠仕书架1.2》程序的算法分析
- 算法导论_第一章_算法在计算中的作用
- 五大算法之一-动态规划(从《运筹学》和《算法导论》两个角度分析)
- 算法分析与设计基础 学习笔记 第一章
- 算法设计技巧与分析笔记 第一章
- 算法导论第一章:算法概念介绍
- 第一章1.2 算法的本质,5个特性与要求
- 算法导论--算法的概率分析技术
- 《算法导论》[第2章] 算法入门-[2.2] 算法分析
- MIT公开课《算法导论》笔记一:算法分析
- PBRT阅读:第一章 1.2 具有照片真实感的渲染和光线追踪算法
- 《算法导论》读书笔记--第二章 2.2 分析算法
- 算法导论第一章:牛逼的算法使用傻逼的计算机也能得到牛逼的结果。
- 算法导论主定理——算法复杂度分析的利器
- 算法导论第2章(1):插入排序,算法分析
- 算法导论第一章——算法在计算机中的作用
- 算法导论1:第一章算法的作用
- 算法导论:第一章 1.1 算法 排序