- 十大经典排序算法动画与解析,看我就够了!(配代码完全版)
- 十大经典排序算法(动图演示)
- LeetCodeAnimation
- python的面试题
- 算法复杂度速查表
- 30 张图弄懂「图的两种遍历方式」
- 代码随想录
-
稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。
-
非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。
-
原地排序:原地排序就是指在排序过程中不申请多余的存储空间,只利用原来存储待排数据的存储空间进行比较和交换的数据排序。
-
非原地排序:需要利用额外的数组来辅助排序。
-
时间复杂度:一个算法执行所消耗的时间。
-
空间复杂度:运行完一个算法所需的内存大小。
- 把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。用这种方法存储的线性表简称顺序表。是一种随机存取的存储结构。
顺序存储指内存地址是一块的,随机存取指访问时可以按下标随机访问,存储和存取是不一样的。
如果是存储,则是指按顺序的,如果是存取,则是可以随机的,可以利用元素下标进行。数组比线性表速度更快的是:原地逆序、返回中间节点、选择随机节点。
- 用一组任意的存储单元来依次存放线性表的结点,这组存储单元即可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。因此,链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址。data域是数据域,用来存放结点的值。next是指针域(亦称链域),用来存放结点的直接后继的地址(或位置)。不需要事先估计存储空间大小。
- 链表只能顺序查找,定位一个元素的时间为O(N),删除一个元素的时间为O(1)。
- 限制在表的一端进行插入和删除运算的线性表。
- 通常称插入、删除的这一端为栈顶(Top),另一端为栈底(Bottom)。先进后出。
- 是一种运算受限的线性表。
- 它只允许在表的一端进行插入,而在另一端进行删除。允许删除的一端称为队头(front),允许插入的一端称为队尾(rear)。先进先出。