计数排序(Counting sort)是一种稳定的线性时间排序算法。该算法于1954年由 Harold H. Seward 提出。计数排序使用一...
计数排序(Counting sort)是一种稳定的线性时间排序算法。该算法于1954年由 Harold H. Seward 提出。计数排序使用一...
学习数据结构与算法有一段时间了,听音频、看视频、看专栏、看书、抄书,尝试了很多种方法,今天在 专栏[https://time.geekbang....
先上代码: KMP 算法的核心思想和 BM 算法非常相近,假设主串是 a,模式串是 b。在模式串与主串匹配的过程中,当遇到不可匹配的字符的时候,...
短网址服务你用过吗?如果我们在微博里发布一条带网址的信息,微博会把里面的网址转化成一个更短的网址。我们只要访问这个短网址,就相当于访问原始的网址...
伸展树(splay tree)保证从空树开始任意连续 M 次对树的操作最多花费 时间。虽然这种保证并不排除任意一次操作花费 时间的可能,而且这...
二叉树的一个重要的应用是它们在查找中的使用。使二叉树成为二叉查找树的性质是,对于树中的每个节点 X,它的左子树中所有关键字值小于 X 的关键字值...
魔兽世界、仙剑奇侠传这类 MMRPG 游戏,不知道你有没有玩过?在这些游戏中,有一个非常重要的功能,那就是人物角色自动寻路。当人物处于游戏地图中...
Google 地图、百度地图、高德地图这样的地图软件,你应该经常使用吧?如果想从家开车到公司,你只需要输入起始、结束地址,地图就会给你规划一条最...
很多人都知道,MySQL 数据库索引所用到的数据结构叫做 B+ 树,但却不知道,B+ 树虽然叫做“树”,它的结构却更像是跳表。不过,它确实是通过...
二叉树(binary tree)是一棵树,其中每个节点的儿子都不能多于两个。 二叉树的一个性质是平均二叉树的深度要比 N 小的多,这个性质有时很...