计数排序(Counting sort)是一种稳定的线性时间排序算法。该算法于1954年由 Harold H. Se...[作者空间]
先上代码: KMP 算法的核心思想和 BM 算法非常相近,假设主串是 a,模式串是 b。在模式串与主串匹配的过程中...[作者空间]
学习数据结构与算法有一段时间了,听音频、看视频、看专栏、看书、抄书,尝试了很多种方法,今天在 专栏[https:/...[作者空间]
短网址服务你用过吗?如果我们在微博里发布一条带网址的信息,微博会把里面的网址转化成一个更短的网址。我们只要访问这个...[作者空间]
伸展树(splay tree)保证从空树开始任意连续 M 次对树的操作最多花费 时间。虽然这种保证并不排除任意一次...[作者空间]
二叉树的一个重要的应用是它们在查找中的使用。使二叉树成为二叉查找树的性质是,对于树中的每个节点 X,它的左子树中所...[作者空间]
魔兽世界、仙剑奇侠传这类 MMRPG 游戏,不知道你有没有玩过?在这些游戏中,有一个非常重要的功能,那就是人物角色...[作者空间]
Google 地图、百度地图、高德地图这样的地图软件,你应该经常使用吧?如果想从家开车到公司,你只需要输入起始、结...[作者空间]
很多人都知道,MySQL 数据库索引所用到的数据结构叫做 B+ 树,但却不知道,B+ 树虽然叫做“树”,它的结构却...[作者空间]
二叉树(binary tree)是一棵树,其中每个节点的儿子都不能多于两个。 二叉树的一个性质是平均二叉树的深度要...[作者空间]
树有很多应用,流行的用法之一是包括 UNIX、VAX/VMS 和 DOS 在内的许多常用操作系统中的目录结构。 假...[作者空间]
树(tree)可以用几种方式定义。定义树的一种自然的方式是递归方法。一棵树是一些节点的集合。这个集合可以是空集;若...[作者空间]
网页爬虫是搜索引擎中的非常重要的系统,负责爬取几十亿、上百亿的网页。爬虫的工作原理是,通过解析已经爬取页面中的网页...[作者空间]
贪婪算法 贪婪算法,也被称为“贪心算法”。贪婪算法分阶段地工作。在每一个阶段,都可以认为所作决定是好的,而不考虑将...[作者空间]
什么样的问题适合用动态规划来解决呢?换句话说,动态规划能解决的问题有什么规律可循呢?实际上,动态规划作为一个非常成...[作者空间]
栈模型 栈是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈的顶(top)。对栈的基本操作有 Pu...[作者空间]
抽象数据结构 程序设计的基本法则之一是例程不应超过一页。这可以通过把程序分割为一些模块(module)来实现。每个...[作者空间]
在许多问题当中,一个重要的观念是:写出一个可以工作的程序并不够。如果这个程序在巨大的数据集上运行,那么运行时间就变...[作者空间]
BF 算法 BF 算法中的 BF 是 Brute Force 的缩写,中文叫作暴力匹配算法,也叫朴素匹配算法。这种...[作者空间]
一个图(graph) G=(V, E)由顶点(vertex) 的集 V 和边(edge) 的集 E 组成。每一条边...[作者空间]