数据结构整体框架

0x00绪论

  1. 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
  2. 数据结构包含三个部分:逻辑结构,存储结构,数据运算。
    (1):逻辑结构分为线性结构和非线性结构。
    线性结构有线性表。非线性结构有集合、树、图等。
    (2):存储结构有顺序结构和非顺序结构。
    顺序结构是各个数据元素在物理上是连续的,非顺序结构是各个数据元素在物理上是离散的。
    非顺序结构又可以分为链式存储,索引存储,散列存储等。
    (3):数据运算中,运算的定义是针对逻辑结构,运算的实现是针对存储结构。

0x01排序算法

https://blog.csdn.net/weixin_39762423/article/details/123853182?spm=1001.2014.3001.5501
一、外部排序
1.插入排序:
(1)直接插入排序:边比较边移动。时间复杂度o(n2),稳定,适用于顺序表和链表。
(2)折半插入排序:先用折半法找出插入位置,再统一移动。时间复杂度o(n2),稳定,适用于顺序表。
(3)希尔排序:先分成多个子序列,每个子序列进行直接插入排序,再减小步长生成多个子序列,对每个子序列进行直接插入排序,直到步长为1。不稳定,适用于顺序表。

2.交换排序
(1)冒泡排序:从头开始依次比较相邻的元素,若为逆序则交换位置。一共n-1趟,每一趟都会确定一个元素的最终位置。时间复杂度o(n2),稳定,适用于顺序表和链表。
(2)快速排序:取一个枢轴,一趟快速排序以后变成左边小于枢轴,右边大于枢轴。时间复杂度是o(nlog2n),不稳定,适用于顺序表。

3.选择排序
(1)简单选择排序:每一趟从待排子序列中选取最小的元素加入有序子序列。o(n2),不稳定,适合顺序表和链表。
(2)堆排序:大根堆,小根堆。构建初试堆,输出堆顶元素,堆底元素送入堆顶,调整,再输出堆顶,重复上述步骤。o(nlog2n),不稳定,适用于顺序表。

你可能感兴趣的:(数据结构,数据结构,算法)