首页
学习
活动
专区
工具
TVP
发布

数据结构与算法

写一些关于数据结构与算法文章
专栏成员
9
文章
5490
阅读量
8
订阅数
数据结构与算法 | 图(Graph)
在这之前已经写了数组、链表、二叉树、栈、队列等数据结构,本篇一起探究一个新的数据结构:图(Graphs )。在二叉树里面有着节点(node)的概念,每个节点里面包含左、右两个子节点指针;比对于图来说同样有着节点(node),在图里也称为顶点(vertex),顶点之间的关联不在局限于2个(左、右),一个顶点可以与任意(0-n个)个顶点进行链接,这称之为边(edge)。 一般会把一个图里面顶点的集合记作 V ,图里面边的集合记作 E,图也就用 G(V,E) 来表示。
Java研究者
2023-11-20
3750
数据结构与算法 | 动态规划算法(Dynamic Programming)
上一篇文末已经提到了记忆化搜索是动态规划(Dynamic Programming)的一种形式,是一种自顶向下(Top-Down)的思考方式,通常采用递归的编码形式;既然动态规划有自顶向下(Top-Down)的递归形式,自然想到对应的另外一种思考方式自底向上( Bottom-Up ),也就是本篇要写的内容。
Java研究者
2023-11-16
4750
数据结构与算法 | 记忆化搜索(Memorize Search)
在本系列的文章中已经写了二叉树(Binary Tree)、深搜(DFS)与广搜(BFS)、哈希表(Hash Table)等等,计划接下来要写的是动态规划(Dynamic Programming,DP),它算得上是最灵活的一种算法。回忆笔者学习动态规划的时候,最开始接触的是经典的 “01背包” 问题;不过现在想起来,以“01背包问题”作为初次接触的动态规划算法的问题并不友好;花费了不少时间才慢慢感悟到动态规划算法的核心思想。
Java研究者
2023-11-13
5340
数据结构与算法 | 哈希表(Hash Table)
在二分搜索中提到了在有序集合中查询某个特定元素的时候,通过折半的方式进行搜索是一种很高效的算法。那能否根据特征直接定位元素,而非折半去查找?哈希表(Hash Table),也称为散列表,就是一种数据结构,用于实现键-值对的映射关系。它通过将键映射到特定的值(哈希值)来实现快速的数据检索。
Java研究者
2023-11-02
6290
数据结构与算法 | 二分搜索(Binary Search)
文承上篇,搜索算法中除了深度优先搜索(DFS)和广度优先搜索(BFS),二分搜索(Binary Search)也是最基础搜索算法之一。
Java研究者
2023-10-30
4120
数据结构与算法 | 深搜(DFS)与广搜(BFS)
在查找二叉树某个节点时,如果把二叉树所有节点理解为解空间,待找到那个节点理解为满足特定条件的解,对此解答可以抽象描述为: 在解空间中搜索满足特定条件的解,这其实就是搜索算法(Search)的一种描述。当然也有其他描述,比如是“指一类用于在数据集合中查找特定项或解决问题的算法”,又或者是“指通过按照一定规则逐一检查数据,以找到所需的信息或解决特定的问题。”等等。
Java研究者
2023-10-26
1K0
数据结构与算法 | 二叉树(Binary Tree)
二叉树(Binary Tree)是一种树形数据结构,由节点构成,每个节点最多有两个子节点:一个左子节点和一个右子节点。
Java研究者
2023-10-23
7710
数据结构与算法 | 链表(Linked List)
链表(Linked List)是一种线性数据结构,它由一系列节点(Node)组成,每个节点包含两部分:数据和指向下(上)一个节点的引用(或指针)。链表中的节点按照线性顺序连接在一起(相邻节点不需要存储在连续内存位置),不像数组一样存储在连续的内存位置。链表通常由头节点(Head)来表示整个链表,而尾节点的下一个节点指向null,表示链表的结束。
Java研究者
2023-10-19
8201
数据结构与算法 | 数组(Array)
数组(Array)应该是最基础的数据结构之一,它由相同类型的元素组成的集合,并按照一定的顺序存储在内存中。每个元素都有一个唯一的索引,可以用于访问该元素。
Java研究者
2023-10-16
4450
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档