首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
数据结构与算法学习笔记
弈宸
创建于2024-10-17
订阅专栏
书籍《hello-algo》阅读与学习笔记
暂无订阅
共9篇文章
创建于2024-10-17
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
图
图(graph)是一种非线性数据结构,由顶点(vertex)和边(edge)组成。我们可以将图 G 抽象地表示为一组顶点 V 和一组边 E 的集合。将顶点看作节点,将边看作连接各个节点的引用(指针)
堆
堆通常用于实现优先队列,大顶堆相当于元素按从大到小的顺序出队的优先队列。从使用角度来看,我们可以将“优先队列”和“堆”看作等价的数据结构。这样看的话,堆顶相当于有序队列的队首,堆底相当于队列队尾。
树
树是一种基于链表的数据结构 二叉树(binary tree)是一种非线性数据结构体 体现了一分为二的分治逻辑
哈希表
哈希表又称散列表,通过建立键 key 与值 value 之间的映射,实现高效的元素查询。当对哈希表输入键 key 时,即可查询到对应的值 value,其时间复杂度仅为 O(1)。
栈与队列
栈与队列 :栈是一种遵循先入后出逻辑的数据结构,队列是一种遵循先入先出规则的线性数据结构,双向队列(double-ended queue)提供了更高的灵活性,允许在头部和尾部执行元素的添加或删除操作。
数组与链表
数据结构与算法的数组、链表和列表。数组可以实现随机访问、链表重点在于更改引用(指针),列表基于动态数组实现,大大提高数组的实用性。
数据结构
所有数据结构都是基于数组、链表或二者的组合实现的。 基于数组可实现:栈、队列、哈希表、树、堆、图、矩阵、张量(维度 ≥3 的数组)等。 基于链表可实现:栈、队列、哈希表、树、堆、图等。
复杂度分析
时间复杂度用于衡量算法运行时间随数据量增长的趋势,可以有效评估算法效率。空间复杂度的作用类似于时间复杂度,用于衡量算法占用内存空间随数据量增长的趋势。通常只关注最差空间复杂度。
初识数据结构与算法
数据结构与算法的基本概念,以及数据结构与算法的基本关系。算法指在有限时间中解决特定问题的一组指令或操作不知,数据结构指组织和存储数据的方式。