第2章算法探究.ppt

解答以下问题: 1. 试分析算法的时间复杂度。即,求出数组a不同元素之间比较次数的关系表达式T(n, k)。 解:显然,T(n, k)不仅与n有关,而且与k有关。 T(n, k) = = = k(2n – k – 1) / 2 2. 问:在什么情况下,算法有最坏时间复杂度和最好时间复杂度?分别计算最好、最坏情况下的时间复杂度。 解:当k=n时,算法有最坏时间复杂度。此时, T(n, k) = T(n, n) = n(n-1)/2 当k=1时,算法有最好时间复杂度。此时, T(n, k) = T(n, 1) = n – 1 3. 如果k在1至n之间取值等概率,请计算该算法的平均时间复杂度,并写出它的上界函数。 解:∵对于一个确定的k值,算法具有时间复杂度: T(n, k) = k(2n – k – 1)/2 ∴算法的平均时间复杂度是对T(n, k)的“加”权平均值。故,算法的平均时间复杂度是: A(n) = 1/n

文档评论(0)

1亿VIP精品文档

相关文档