1 绪论
2 线性表
3 栈和队列
4 串、数组和广义表
5 树和二叉树
6 图
6.1 图的定义和基本术语
6.2 图的存储结构
6.2.1 邻接矩阵
6.2.2 邻接表
3.2.3 十字链表法
6.2.4 邻接表多重表
7 查找
7.1 线性表的查找
7.1.1 顺序查找
7.1.2 折半查找
7.1.3 分块查找
7.2树表的查找
7.2.1 二叉排序树
7.2.2 平衡二叉树
8 排序
8.1 基本概念和排序方法的概述
1.排序(Sorting)是按关键字的 非递减 或 非递增顺序对一组记录重新进行排列的操作。
2.排序的稳定性:待排序序列中存在两个或两个以上关键字相等的记录时,排序所得结果唯一,则排序稳定。
3.排序分类
内部排序:待排序记录全部存放在计算机内存中进行排序的过程;
(1)插入类:将无序子序列中的一个或几个记录“插入”到有序序列中,从而增加记录的有序子序列的长度。
(2)交换类:通过"交换"无序序列中的记录从而得到其中关键字最小或最大的记录,并将它加入到有序子序列中,以此方法增加记录的有序子序列的长度。
(3)选择类:从记录的无序子序列中“选择”关键字最小或最大的记录,并将它加入到有序子序列中,以此方法增加记录的有序子序列的长度。
(4)归并类:通过“归并”两个或两个以上的记录有序的子序列,逐步增加记录的有序序列的长度。
(5)分配类:是唯一一类不需要进行关键字之间比较的排序方法,排序时主要利用分配和收集两种基本操作来完成。基数排序是主要的分配类排序方法。
外部排序:待排序记录的数量很大,内存依次读不完全部记录,在排序过程中尚需要对外存进行访问的排序过程。
8.2 插入排序
8.2.1 直接插入排序
8.2.2 折半插入排序
折半插入排序
折半插入排序(Binary Insertion Sort)是对插入排序算法的一种改进。采用折半查找法查找当前记录在已经排好序的序列中的插入位置。
算法思路
先用折半查找找到对应的插入位置,在移动元素。当low>high时停止折半查找,应当将[low,i-1]内的元素全部右移,并将A[0]复制到low所指位置。
2 路插入排序 (由折半插入排序优化)
8.2.3 希尔排序
8.3 交换排序
8.3.1 冒泡排序
8.3.2 快速排序
8.4 选择排序
8.4.1简单选择排序-直接选择排序
8.4.2树形选择排序-锦标赛排序
8.4.3堆排序
8.5 归并排序
8.6 基数排序
8.7 *外部排序
文件