欲望以提升热忱,毅力以磨平高山!|

navyum

园龄:4个月粉丝:0关注:0

随笔分类 -  03.算法、数据结构

3.栈
摘要:栈 Stack: 概念: 栈(Stack)是一种线性表数据结构 遵循后进先出(LIFO,Last In First Out)原则,只能在栈顶进行添加和删除操作 操作: push (入栈) pop (出栈) peek (仅查看) 栈的应用: 函数调用栈 表达式求值 回溯算法 图解:
5
0
0
2.1列表
摘要:列表 List 概念: 列表 List 是一种抽象的数据结构概念 表示元素的有序集合 无须使用者考虑容量限制的问题 如何实现列表: 链表本身就是列表 动态数组实现列表,需要实现动态扩容
2
0
0
4.队列
摘要:队列 Queue: 概念: 队列 Queue 是一种线性表数据结构 遵循先进先出(FIFO,First In First Out)原则,在队列的尾部添加元素,在头部移除元素 操作: enqueue(入队) dequeue(出队) front (仅查看) 应用: 任务调度 广度优先搜索算法 图解: 双
2
0
0
2.链表
摘要:链表 Linked List: 概念: 数组(Array)是一种线性表数据结构 用非连续的内存空间,来存储具有相同类型的数据的数据结构 每个节点包含数据部分和指针,指针指向下一个(或上一个,对于双向链表)节点 特点: 动态大小:链表的大小可以在运行时改变 不连续的内存:节点可以在内存中分散存储,通过
2
0
0
1.数组
摘要:数组 Array: 概念: 数组(Array)是一种线性表数据结构 用一组连续的内存空间,来存储一组具有相同类型的数据 数组中的元素可以通过索引直接访问 特点: 随机访问:可以快速地通过索引访问任何元素 固定大小:一旦声明,数组的大小就固定了 空间效率:因为申明时需要预留空间,在空间上可能不是最优的
2
0
0
0.线性表
摘要:线性表 特点: 由N个具有相同特性的数据元素组成的有限序列 线性表中的数据元素之间呈现一对一的关系,除了第一个和最后一个数据元素之外,其他数据元素都是首尾相接的 线性表上的数据最多只有前和后两个方向 举例: 数组 链表 栈 队列 个人理解 线性、非线性的区别 数学坐标系: 线性表元素之间相互连接,类
2
0
0
5.位图
摘要:5.位图
2
0
0
4.动态扩容
摘要:4.动态扩容
2
0
0
1.散列表
摘要:散列表/哈希表 特点: 通过建立键 key 与值 value 之间的映射,实现O(1)时间复杂度的高效的元素查询 举例: 树 图 图解: 常用操作: 初始化 查询操作 添加键值对 删除键值对 哈希函数(hash function): 作用:作用是将一个较大的输入空间映射到一个较小的输出空间 索引位置
2
0
0
3.冲突处理
摘要:3.冲突处理
2
0
0
2.哈希函数
摘要:哈希函数 目标: 极快且稳定 特点: 确定性/幂等性: 对于相同的输入,哈希算法应始终产生相同的输出。这样才能确保哈希表是可靠的。 效率高: 计算哈希值的过程应该足够快,哈希表的实用性越高。 均匀分布: 哈希算法应使得键值对均匀分布在哈希表中。分布越均匀,哈希冲突的概率就越低。 常见的哈希算法: M
3
0
0
2.二叉树
摘要:二叉树 Binary Tree: 1.特点: 一种非线性数据结构,代表“祖先”与“后代”之间的派生关系 二叉树的基本单元是节点,每个节点至少包含值、左子节点引用和右子节点引用 二叉树中,除叶节点外,其他所有节点都包含子节点和非空子树 2.概念: 名词 解释 根节点(root node) 位于二叉树顶
4
0
0
5.多路查找树
摘要:多路查找树 2-3树 2-3-4树 B树 B+树 多叉树: 树的每个节点可以有超过2个子节点 举例:2-3树、2-3-4树、B树、B+树 概念: 阶数(Order),对于一颗M阶B树,一个节点最多包含M个子节点 B树(Balanced Tree): B树是多路平衡查找树的一种特殊类型 B 是Bala
10
0
0
4.红黑树
摘要:红黑树 红黑树是一种自平衡的二叉查找树,属于AVL平衡树的一种特殊形式 特征: 每个节点要么是红色,要么是黑色。 根节点是黑色。 每个叶子节点(NIL)是黑色。 如果一个节点是红色,则其两个子节点必须是黑色。 从任一节点到其每个叶子的所有路径,都包含相同数目的黑色节点。 红黑树的这5条性质,使得一棵
2
0
0
3.AVL平衡树
摘要:AVL平衡树 特征: AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二叉树的所有性质 AVL 树是一种平衡二叉搜索树 属性: 节点高度 节点平衡因子:节点左子树的高度减去右子树的高度,空节点的平衡因子为0 AVL 树旋转: 作用: AVL 树的特点在于“旋转”操作,它能够在不影响二叉树的中
6
0
0
1.树
摘要:树 在树中,数据从顶部向下按层次排列,表现出“祖先”与“后代”之间的派生关系 树结构是一种非线性存储结构,存储的是具有一对多关系的数据元素 树的分类: 树 二叉树 按树的结构: 满二叉树 完满二叉树 完全二叉树 按搜索功能: 查找:(索引) 二叉查找树(BST) 非平衡查找树 平衡树二叉树 AVL树
2
0
0
6.堆
摘要:堆 定义:完全二叉树的一种特定应用 特征: 最底层节点靠左填充,其他层的节点都被填满(完全二叉树特性)。 根节点称为“堆顶”,将底层最靠右的节点称为“堆底”。 对于大顶堆(小顶堆),堆顶元素(根节点)的值是最大(最小)的。 堆分类: 小顶堆:任意节点的值≤其子节点的值 大顶堆:任意节点的值≥其子节点
2
0
0
00.定义
摘要:定义 算法(algorithm) 是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性: 问题是明确的,包含清晰的输入和输出定义。 具有可行性,能够在有限步骤、时间和内存空间下完成。 各步骤都有确定的含义,在相同的输入和运行条件下,输出始终相同。 数据结构(data structure)
17
0
0
1.思维导图
摘要:数据结构和算法 线性表 数组 链表 单链表 双向链表 循环链表 双向循环链表 静态链表 栈 顺序栈 链式栈 队列 普通队列 双端队列 阻塞队列 并发队列 阻塞并发队列 树 二叉树 平衡二叉树 AVL树 红黑树 完全二叉树 满二叉树 平衡二叉查找树 多路查找树 B树 B+树 2-3树 2-3-4树 堆
10
0
0
0.学习路径
摘要:学习路径: 阶段一:算法入门 我们需要熟悉各种数据结构的特点和用法,学习不同算法的原理、流程、用途和效率等方面的内容。 阶段二:刷算法题 建议从热门题目开刷,先积累至少 100 道题目,熟悉主流的算法问题。初次刷题时,“知识遗忘”可能是一个挑战,但请放心,这是很正常的。我们可以按照“艾宾浩斯遗忘曲线
2
0
0
//自己上传到博客园的js
点击右上角即可分享
微信分享提示