- 博客(18)
- 收藏
- 关注
原创 10.二叉查找树
一种特殊的二叉树——二叉查找树(Binary Search Tree),二叉查找树又称为二叉搜索树。对任意结点,如果左子树不为空,则左子树上所有节点的权值都小于该节点的权值;如果右子树不为空,则右子树上所有节点的权值都大于该节点的权值。在二叉查找树中,任意节点的左子树和右子树都是一颗二叉查找树,一般而言,二叉查找树上节点的权值都是唯一的。在二叉查找树上,对任意节点,如果有左子树和右子树,那么其左子树上节点的权值都小于右子树上节点的权值。如果中序遍历二叉查找树,会得到一个从小到大的序列。
2022-09-04 21:37:28
180
原创 6.字符串匹配算法
字符串匹配问题是计算机科学中研究最为广泛的问题之一,字符串匹配算法发展了十几年,广泛应用于生物信息学、信息检索等领域。本文介绍几种常用基础算法
2022-09-04 21:33:25
205
原创 3.算法的复杂度分析
算法的复杂度是评估算法性能优劣一个重要的指标,可以帮助程序员估算出算法在执行之后所需要的时间和空间,所以分析算法的复杂度几乎成了每个程序员必须掌握的能力。
2021-04-22 18:07:08
434
原创 2.素数相关
质数又称为素数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。只有两个正因数(1和自己)的自然数即为质数。比1大但不是素数的数称为合数。1和0既非素数也非合数。所有大于1的正整数都可以表示成素数的和。所有的合数都可以写成一个素数乘以一个自然数的形式,这个素数被称为该合数的素因子。
2021-04-16 11:48:47
632
原创 1.欧几里得算法
欧几里得算法又名辗转相除法,迄今为止已知的最古老的算法,距今两千三百多年,用于快速计算两个数字的最大公约数,还可以用于快速求解 `a*x + b*y = 1`方程的一组整数解。
2021-04-15 15:12:23
243
原创 9.图的存储与遍历
图是由一系列顶点和若干连结顶点集合内两个顶点的边组成的数据结构。数学意义上的图,指的是由一系列点与边构成的集合。图的存储方式主要为邻接矩阵和邻接表。主要的遍历方式有深度优先遍历(dfs)和广度优先遍历(bfs).
2021-04-13 17:17:25
599
原创 7.森林与并查集
由若干棵互不相交的树组成的数据结构被称为森林。在数据结构里,森林是由若干棵互补相交的树组成的。森林有两种遍历方法,分别是先序遍历和后序遍历。
2021-04-07 18:26:03
563
原创 6.堆与优先队列
堆可以看成是一棵完全二叉树,除最后一层以外,它的每一层都是填满的,最后一层从左到右依次填入。对于堆上的任意一个结点来说,越接近顶部,结点的权值也就越大,并且它的权值大于等于它所在子树的所有结点的权值。我们对具有这样性质的完全二叉树叫做堆。
2021-04-06 22:16:49
164
原创 5.查找算法
查找(search) 是指在数据集合中寻找满足某种条件的数据元素的过程。查找操作是数据处理中使用最频繁的一项操作。二分查找是顺序表中最常用的查找方式。
2021-04-05 22:24:11
252
原创 8.哈希表
哈希表又叫散列表,关键值通过哈希函数映射到数组上,查找时通过关键值直接访问数组。哈希函数指的是关键值和存储位置建立的对应关系。哈希函数指的是关键值和存储位置建立的对应关系,查找时只要根据这个关系就能找到目标位置。
2021-04-03 23:43:45
160
原创 4.栈
栈是一种先进后出(FILO,First-In-Last-Out)的线性表,栈和队列非常相像,但是栈只能在栈顶插入和删除元素。日常使用中可以使用数组或者链表来模拟栈
2021-03-31 21:38:20
87
原创 3.队列
队列是一种先进先出FIFO,First-In-First-Out的线性表,通常用链表或者数组来实现。队列只能在队尾插入元素,只能在队首删除元素。
2021-03-30 11:33:28
274
原创 2.链表
链表是线性表的一种,每个节点里存储了数据域和指针域,其中指针域中存储指向下一个节点的指针。相比顺序表,链表在插入和删除操作上更方便。链表有很多不同类型:单向链表、双向链表、循环链表等。
2021-03-29 17:22:23
139
原创 1.顺序表
线性表(linear list) 是数据结构学习的第一步,也是最简单最常用的数据结构之一。线性表最具有代表性的一种存储方式就是顺序表存储。
2021-03-29 17:20:32
503
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人