线性结构 直接存取类 数组, 文件 顺序存取类 表, 栈, 队列, 优先队列 广义索引类 线性索引, 搜索树 非线性结构 层次结构类 树,二叉树,堆 群结构类 集合,图 数据结构的抽象层次 数据结构的抽象层次 为什么选用面向对象及C++语言讲述数据结构? PASCAL与C描述是面向过程的。 C++描述兼有面向过程与面向对象的特点。 Java描述是面向对象的。 用面向对象及C++描述与国际接轨,是市场需要。 算法定义 定义:一个有穷的指令集,这些指令为解决某一特定任务规定了一个运算序列 特性: 输入 有0个或多个输入 输出 有一个或多个输出(处理结果) 确定性 每步定义都是确切、无歧义的 有穷性 算法应在执行有穷步后结束 有效性 每一条运算应足够基本 事例学习:选择排序问题 明确问题:递增排序 解决方案:逐个选择最小数据 算法框架: for ( int i = 0; i n-1; i++ ) { //n-1趟 从a[i]检查到a[n-1]; 若最小整数在a[k], 交换a[i]与a[k]; } 细化程序:程序 SelectSort 算法设计 自顶向下,逐步求精 void selectSort ( int a[ ], const int n ) { //对n个整数a[0],a[1],…,a[n-1]按递增顺
原创力文档

文档评论(0)