《数据结构基础》
作者: [美]Ellis Horowitz 霍罗维兹
译者: 朱仲涛
出版社: 清华大学出版社
ISBN: 9787302186960
在 豆瓣读书 中查看本书
1.1 概观:系统生命周期
需要掌握的技能
- 算法的规范声明
- 算法的性能分析
- 算法的性能评价
- 程序设计的首要问题:首先把大规模程序系统分解成许许多多自成体系且相对独立的组成部件,然后再为各部分直接存在的相互调用,定义严格的调用格式。
开发过程的生命周期
- 需求阶段:
- 规范声明明确定义项目目标;
- 需求用来描述程序员必须获得的信息,即给定是输入是什么,生成的输出是什么;
- 一般而言开始时,规范声明往往粗略,随后的求精过程不断完善有关输入输出的描述,直到包括全部细节,涵盖所有情形。
- 分析阶段:
- 自顶向下分析需求,把问题分解成规模适中且便于处理的各个部分;
- 自顶向下方法会生成大量框架(diagrams),用于随后阶段,即系统设计阶段的设计依据;
- 分析阶段根据问题种类的特点往往会提出多种候选方案,以后通过研究、比较,最后筛选出最佳方案。
- 设计阶段:
- 改阶段延续分析阶段的工作。
- 该阶段不但要考虑数据对象,还要考察针对数据对象而设置的各种操作。
- 抽象数据类型和算法的规范声明与实现语言无关。需要确定每种数据对象所需的信息,不过可以暂时忽略编写代码的实现细节。例如:确定了学生数据对象要包括姓名、学号、专业、联系电话,但不必确定学生清单具体由数组、链表、树哪种来实现。
- 设计阶段把实现细节尽量推迟的两个好处:为选择编程语言留有余地和选择最高效的实现语言
- 求精与编写代码阶段:
- 首先选择数据对象的存储表示,其次实现各种操作算法。因为算法的效率取决于数据对象的表示。
- 在确定数据表示之前,假如要考虑算法,那么算法应该与数据对象无关。
- 在目前阶段发现目前完成的系统设计并不是最好的,推倒重来代价不会太大。
- 正确性验证阶段:
- 本阶段的三个工作:证明程序正确;用合适的输入数据测试程序;改正错误。
网友评论