中南大学算法分析与设计复习课件
- 格式:ppt
- 大小:204.00 KB
- 文档页数:16
算法设计与分析1、什么是算法?算法有哪些基本特征?请指出算法同程序的相同点与不同点。
答:算法是解决问题的方法或过程,是满足以下四个性质的指令序列1)输入:有0个以上的输入2)输出:至少有1个输出3)确定性:指令清晰、无歧义4)有限性:指令执行次数有限,时间有限算法和程序的相同点:两者都具有输入、输出和确定性的特征不同点:程序是算法用某种程序语言的具体实现,程序不满足算法具有的有限性性质2、请描述算法设计的一般过程。
答:算法设计的一般过程是1)提出问题2)确定数学模型3)明确目的、条件和约束关系4)设计求解步骤5)结果评估与分析如果在第5步的分析中对算法时间、空间复杂度或结果不满意,可以返回第1步或第4步进一步迭代,直至找到满意的算法。
3、什么是算法复杂性?它主要有哪两个方面构成?答:算法复杂性是算法运行时所需要的计算机资源的量,它包括两个方面:时间复杂性(需要时间资源的量)和空间复杂性(需要空间资源的量)。
4、时间复杂性分析主要分哪三种情况,哪种情况的可操作性最好,最具有实际价值?答:时间复杂性分为3种情况,最好情况、平均情况、最坏情况,可操作性最好,最具有实际价值的是最坏情况下的时间复杂性5、如果算法A由三个步骤组成,其中第一步的时间复杂性为O(n2),第二步的时间复杂性为O(nlogn),第三步的时间复杂性为O(n),请问算法A的时间复杂性是多少?答:O(n2)6、请问二分搜索算法、快速排序算法、线性时间选择算法和最近点对问题的时间复杂性各为多少?答:二分搜索算法:最坏情况O(logn)、快速排序算法:最坏情况O(n2),最好情况和平均情况均为O(nlogn)线性时间选择算法:最坏情况O(n)最近点对问题:时间复杂性O(nlogn)7、分治算法和动态规划算法都是通过对问题进行分解,通过对子问题的求解然后进行解重构,从而实现对原问题的求解。
请指出这两种算法在对问题进行分解时各自所遵循的原则。
答:分治算法对问题进行分解时所遵循的原则是将待求解问题分解为若干个规模较小、相互独立且与原问题相同的子问题(不包含公共的子问题)。