第二章 算法基础

来源:互联网 发布:大数据促进旅游产业 编辑:程序博客网 时间:2024/05/27 20:45

2.1插入排序

伪代码:最清晰,最简短的表示方法来说明给定的方法。目的是为了表达算法的本质,常常忽略数据抽象、模块性、和错误处理的问题


自己:何为表达算法的本质?算法的本质在于计算的步骤的有序性和明确性。


循环不变式:用来帮助我们理解算法的正确性。它拥有三条性质:base case为真,recursive step为真,final step 为真


自己:在C语言编程(不知道其他对象编程或过程编程是不是)中有三种语言结构,循环,顺序和判断,顺序和判断都容易判断程序的正确性,而循环只好靠循环不变式来证明一些性质,进而证明程序的正确性


2.2 分析算法

硬件模型:RAM


自己:为了简化对算法的分析,使算法分析独立与机器之外


输入规模:依赖于研究的问题


自己:具体问题具体分析


算法的运行时间:执行的基本操作数或步数。每行代码就是一步


自己:简化了模型,使算法分析更为简单


算法分析更简化的抽象:我们真正感兴趣的事运行时间的增长率或增长量级


自己:抽象都这种层次,就相当于渐进分析。实际上,抽象是一种技术,也是一种思想,它简化了模型,使分析更为简单。