提纲 线性表 顺序表 链表 栈和队列 稀疏矩阵存储 排序算法 排序问题定义 输入:n个数的序列(a1,a2,…,an) 输出:输入序列的一个重排(a’1,a’2,…,a’n), 满足: a’1≤a’2≤…≤a’n 注:排序是计算机科学中最基本的操作,也是软件设计过程中最常用的技巧。 排序序列定义 不失一般性,我们假设排序序列是复合的数据,包含1个用于排序的关键字,不妨称之为“排序码(key)”。 const MAXSIZE = 20; // 假设的顺序表最大长度? typedef struct {? RcdType r[MAXSIZE+1];? // r[0]闲置或作为判别标志的哨兵单元? int length; // 顺序表长度? } SqList; // 顺序表类型??其中记录类型定义为:? typedef struct {? KeyType key; // 关键字项 ? InfoType otherinfo; // 其它数据项 ? } RcdType; // 记录类型并设定关键字为整型 ? typedef int KeyType; 注:可将RcdType理解为学生信息记录,key为某课程成绩,我们以考试成绩对学生排序,但是,学生信息还包含很多其他信息。 直接插入排序 从第一个元素开始,该元素可以认为已经被排序
原创力文档

文档评论(0)