算法分析与设计复习
大纲
第1章 绪论 考点:
1、 算法的5个重要特性。
答:输入、输出、有穷性、确定性、可行性
2、 掌握扩展递归技术和通用分治递推式的使用。 扩展递归技术:
通用分支递归式:
5、使用扩展递归技术求解下列递推关系式 (1)
(2)
第3章 蛮力法
1、 掌握蛮力法的设计思想:
蛮力法依赖的基本技术——扫描技术,即采用一定的策略将待求解问题的所有元素依次处理一次,从而找出问题的解;
关键——依次处理所有元素。
2、 蛮力法的代表算法及其时间复杂度: 顺序查找,O(n)
串匹配(BF O(n*m) ,KMPO(n+m) 选择排序,O(n) 冒泡排序,O(n)
生成排列对象(排列问题),O(n!) 生成子集(组合问题),O(2) 0/1背包 属于组合问题。
任务分配,哈密顿回路,TSP问题 属于排列问题。
3、 掌握BF和KMP算法的原理,能够画出比较过程。要求给出一串字符串,能够求出对应的next数组,并能使用KMP算法进行比较匹配。
4、 掌握选择排序和冒泡排序算法描述和时间复杂性,要求能够写出伪代码。 选择排序
算法描述:选择排序开始的时候,扫描整个序列,找到整个序列的最小记录和序列中的第一记录交换,从而将最小记录放到它在有序区的最终位置上,然后再从第二个记录开始扫描序列,找到n-1个序列中的最小记录,再和第二个记录交换位置。一般地,第i趟排序从第i个记录开始扫描序列,在n-i+1个记录中找到关键码最小的记录,并和第i个记录交换作为有序序列的第i个记录。 时间复杂性:O(n) 伪代码:
2
n
22
冒泡排序
算法描述:冒泡排序开始的时候扫描整个序列,在扫描过程中两两比较相邻记录,如果反序则交换,最终,最大记录就能被“沉到”了序列的最后一个位置,第二趟扫描将第二大记录“沉到”了倒数第二个位置,重复上述操作,直到n-1趟扫描后,整个序列就排好序了。 冒泡排序,O(n)
2
5、 算法设计题:
假设在文本“ababcabccabccacbab”中查找模式 “abccac”,求分别采用BF算法和KMP算法进行串匹配过程中的字符比较次数。
由此可知,用BF算法一共要进行3+1+4+1+1+6+1+1+1+6=25次比较方能匹配出
KMP算法:next[]={,0,1,1,1,1,2};
由此可知,用KMP算法一共要进行3+4+6+5=18次比较方能匹配出
第4章 分治法
了解分治法的设计思想
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库算法分析与设计复习大纲(全)在线全文阅读。
相关推荐: