《算法导论》第2章总结

来源:互联网 发布:nginx 性能优化 编辑:程序博客网 时间:2024/06/10 06:16
《算法导论》第2章总结
第2章 算法基础
本章主要通过引入插入排序算法来介绍“伪代码”,并学习分析运行时间,学习分治法及其相关应用。
本章共有1个重点,已加粗并加下划线。

2.1
←我们希望排序的数也称为关键词
←插入排序算法在原数组中重排这些数(插入排序理解同在本博客中)
←引入帮助理解算法正确性的循环不等式
←通过插入排序,证明循环不等式成立
伪代码中的一些约定P11-12
·采用块式结构
·//后表注释
·无显示说明,不使用全局变量
·and、or都是短路的

2.2
←在大多数计算机中,将一个整数的各位左移k位等价于将该整数乘以2的k次方
←输入规模的最佳概念依赖于研究的问题
←一个算法在特定输入上的运行时间是指执行的基本操作数或步数,在这里假设执行每行伪代码需要常量时间
←若输入数组已反向排序,即按递减序排好序,则导致最坏情况
←一个算法的最坏情况运行时间给出了任何输入的运行时间的一个上界
←“平均情况”往往与最坏情况大致一样差
←如果一个算法的最坏情况运行时间具有比另一个算法更低的增长量级(像上一章提到的归并排序),那么我们通常认为前者比后者更有效

2.3
←分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后再合并这些子问题的解来建立原问题的解
←分治模式在每层递归时都有三个步骤:①分解②解决③合并
←归并排序算法的关键操作是“合并”步骤中两个已排序序列的合并
←在最坏情况下,运行时间为n lg n的归并排序将优于运行时间为n的平方的插入排序

习题中的几个算法:
←选择算法 选出最大,次大,与前面的交换,依次类推
←如果序列A已排好序,就可以将该序列的重点与v进行比较,根据比较的结果,原序列中有一半就可以不用再做进一步的考虑了。二分查找算法重复这个过程,每次都将序列剩余部分的规模减半。二分查找的最坏情况运行时间为lg n

简单概括一下,第2章重点要看的是“伪代码”的一些约定,这也涉及到后面部分的阅读,并且需要注意到归并排序、二分查找、选择排序及其相关特点和方法
1 0