一、数据结构回顾
数据的逻辑结构可以分为
线性结构、非线性结构
线性结构又可以分为:
线性表、栈、队列、广义表、字符串、数组
非线性结构:
数和图
数据存储结构:
顺序存储和链式存储
数据的运算方法:
增删改查排序
二、排序概述
二分排序必须要有顺序
排序方法的分类
按存储介质:内部排序、外部排序
比较器个数:并行排序和串行排序
主要操作:比较排序和基数排序
辅助空间:原地排序和非原地排序
稳定性:稳定排序和非稳定排序
自然性:自然排序和非自然排序
存储介质:
内部排序一般是在内存上,外部排序一般不放在内存上,比如说放到文件上
处理器:
单个处理器排序,多个处理器并行排序
方法分类:
比较排序: 插入排序、交换排序、选择排序、归并排序
基数:
不比较大小、仅仅根据元素本身确定有序位置
辅助空间:
原地排序O(1)、非原地排序:用辅助空间时间复杂度超过O(1)
稳定性:
是否改变相同元素位置,不改变为稳定,改变为非稳定的
自然醒:
有序的输入数据排序块则为自然排序,否则为非自然
根据排序原则
插入排序:直接排序、折半排序、希尔排序
交换:冒泡排序、快速排序
选择排序:简单排序、堆排序
归并排序:2路归并
基数排序
顺序表存储结构
#define MAXSIZE 20;
typedef int KeyType;
typedef struct {
KeyType key;
InfoType otherInfo; //其他数据
}RedType;
Typedef struct {
RedType r[MaxSize + 1]; //r[0]是哨兵位置
int length;
}SplList;