数据结构笔记合集-12-9

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 *外部排序

文件

猜你喜欢

转载自blog.csdn.net/QQ657205470/article/details/128259135