您的位置:首页 > 其它

算法导论:第一章 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)的算法运行的更快。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: