1
2010-2011学年第一学期《算法设计与分析》试卷(A 卷)
授课班号 年级专业 2008 计算机 学号 姓名
1.(15分)假设某种算法在输入规模为n 时的计算时间为()n 23n T ?=,在计算机A 上完成该算法的时间为t 秒,现有另一台计算机B ,其运行速度是A 的64倍。
① 那么在计算机B 上用同样的t 秒时间能解决规模为多大的问题?
② 如果上述算法的时间时间复杂度改进为()3n n T =,其余条件不变,则在机器B 上的用t/2秒的时间,能解决规模n 为多大的问题?
③ 如果算法的时间复杂度进一步优化为()n 8n T =,其余条件不变,在机器B 上解决规模为5n 的问题,需要的时间是多少?
2.(15分)针对n 盘子的汉诺塔问题 ① 写出算法的伪代码(或者C 语言代码)。
② 分析算法的最好情况、最坏情况、平均情况时间复杂度(用大O 表示)。
3.(15分)给定一个随机数据序列X=n
i i x 1=}{
① 如果X 取如下的实例,X=(32,12,44,54,21,7,13,25,30),写出手工完成插
入排序的过程。
② 写出插入排序算法(伪代码或者c 语言代码)。
③ 分析算法的最好情况时间复杂度,最坏情况时间复杂度。
4.(15分)幂指数计算问题: 写出一个时间复杂度最好的算法,计算n a ,并分析其时间复杂度。