内排序
记录:进行排序的基本单位
关键码:唯一确定记录的一个或多个域
排序码:作为排序运算依据的一个或多个码
序列:线性表,由记录组成的集合
排序:将序列中的记录按照排序码特定顺序排列起来,即排序码域的值具有不减(或不增)的顺序
简单排序
插入排序
冒泡排序
选择排序
复杂度$O(n^2)$
插入排序
实现
void StraightInsertSorter(Record Array[],int n){ for(int i=1;i<n;i++){ for(int j=i;j>0;j--){ if(Array[j]<Array[j-1]){ swap(Array,j,j-1); } else{ break;//此时前面的已经排好序了 } } }}
优化
引入二分 ...
图基于邻接表的图的ADT实现class Graph { // 图的ADTpublic: int VerticesNum(); // 返回图的顶点个数 int EdgesNum(); // 返回图的边数 // 返回与顶点oneVertex相关联的第一条边 Edge FirstEdge(int oneVertex); // 返回与边PreEdge有相同关联顶点oneVertex的下一条边 Edge NextEdge(Edge preEdge); // 添加一条边 bool setEdge(int fromVertex, int toVertex, int weight); // 删除一条边 bool delEdge(int fromVertex, int toVertex); // 如果oneEdge是边则返回TRUE,否则返回FALSE bool IsEdge(Edge oneEdge); // 返回边oneEdge的始点 int FromVertex(Edge oneEdge); ...
通知由于本篇过大,hexo架构渲染时有点问题,这里有pdf版本
引用站外地址
pdf版本
有点多
3. 考试范围和重点1-6章,以本文最后的内容为复习重点,尤其是★标出部分为重中之重。考试时如果涉及到本大纲没有列出的内容,那么试卷中会给出足够的定义和性质。
遗留问题
第1章 概论一. 重要概念
抽象数据结构 2. 数据逻辑结构 3.数据存储结构 4. 算法 ★ 5. 算法分析(时间代价、空间代价) 6. 数据结构的选择和评价
二. 方法
根据二元组画出图示逻辑结构(注意边的方向)
★ 2. 根据要求设计数据结构 ★ 3. 算法的渐进分析方法 ★ 4.算法分析的大O表示法(不要求掌握大Ω、大Θ表示法)
数据结构
涉及数据之间的逻辑关系,数据在计算机中的存储表示和在这种结构上的一组能执行的操作(运算)三个方面
三要素
逻辑结构
存储(物理)结构
...