标签: 数据结构

共找到了113个结果

压缩算法的基础(下):赫夫曼编码及其应用

数据结构与算法 二叉树

上篇文章我们介绍了赫夫曼树的定义和构建,当然,赫夫曼不会闲到为了转化下成绩等级专门实现赫夫曼树,当年,他研究赫夫曼树是为了解决远距离...

由 学院君 发布于4年前    浏览数: 331    点赞数: 0

压缩算法的基础(上):赫夫曼树及其构建

数据结构与算法 二叉树

今天我们继续分享二叉树的一些应用:赫夫曼树。 我们日常使用压缩和解压软件的频率可谓是非常高,而最基本的压缩算法 —— 赫夫曼编码,...

由 学院君 发布于4年前    浏览数: 347    点赞数: 0

解决 TopK 问题的利器(下):堆排序及其应用

数据结构与算法 二叉树

堆排序 上篇分享我们介绍了堆的定义及其构建,这篇教程我们来分享堆排序及其应用,堆排序的过程其实就是不断删除堆顶元素的过程。如果构建...

由 学院君 发布于4年前    浏览数: 443    点赞数: 0

解决 TopK 问题的利器(上):堆和堆的构建

数据结构与算法 二叉树

什么是堆 堆是一种特殊的二叉树,具备以下特性: 堆是一个完全二叉树 每个节点的值都必须大于等于(或小于等于)其左右孩子节点的...

由 学院君 发布于4年前    浏览数: 522    点赞数: 0

红黑树的动态平衡实现原理分析

数据结构与算法 二叉树

插入节点 红黑树规定,插入的节点必须是红色的。而且,二叉排序(查找)树中新插入的节点都是放在叶子节点上。首先,我们来看两种最简单的...

由 学院君 发布于4年前    浏览数: 453    点赞数: 0

红黑树的特性和算法复杂度

数据结构与算法 二叉树

前面几篇分享中我们陆续介绍了平衡二叉树的定义、实现原理、构建过程演示以及对应的实现代码,我们提到平衡二叉树是最理想的二叉排序树,性能...

由 学院君 发布于4年前    浏览数: 597    点赞数: 0

平衡二叉树(AVL)的实现代码和算法复杂度

数据结构与算法 二叉树

下面我们将上一篇分享中演示的平衡二叉树构建示例转化为 PHP 代码。 节点类 我们还是使用二叉链表来实现二叉树的存储,对应的节点...

由 学院君 发布于4年前    浏览数: 577    点赞数: 1

平衡二叉树的构建实现过程演示

数据结构与算法 二叉树

我们在上一篇文章中分享了平衡二叉树的定义和实现原理,这一节我们来演示如何通过代码实现平衡二叉树,最后分析下平衡二叉树的算法复杂度。 ...

由 学院君 发布于4年前    浏览数: 585    点赞数: 0

平衡二叉树(AVL)的定义和实现原理

数据结构与算法 二叉树

引子 上一篇我们介绍了二叉排序树,并且提到理想情况下,二叉排序树的插入、删除、查找时间复杂度都是 O(logn),非常高效,而且它...

由 学院君 发布于4年前    浏览数: 801    点赞数: 2

二叉排序(查找)树的定义及实现

数据结构与算法 二叉树

为什么要引入二叉排序树 我们前面已经介绍了很多数据结构,比如数组、链表、散列表等,数组查找性能高,但是插入、删除性能差,链表插入、...

由 学院君 发布于4年前    浏览数: 980    点赞数: 0

PHP 字符串匹配函数 strstr 底层实现原理剖析

数据结构与算法 字符串匹配

PHP 提供的字符串匹配函数多是单模式匹配,因此大多通过 KMP 算法实现,我们以 strstr 函数为例,简单对底层实现源码进行剖...

由 学院君 发布于4年前    浏览数: 462    点赞数: 0

字符串匹配算法之 Trie 树的定义、实现及应用

数据结构与算法 字符串匹配

介绍完树和二叉树的基本数据结构和算法之后,我们接着之前没讲完的字符串匹配算法。 Trie 树的定义 Trie 树,也叫「前缀树」...

由 学院君 发布于4年前    浏览数: 703    点赞数: 1

字符串匹配算法之 KMP 算法

数据结构与算法 字符串匹配

KMP 算法可以说是字符串匹配算法中最知名的算法了,KMP 算法是根据三位作者(D.E.Knuth,J.H.Morris 和 V.R...

由 学院君 发布于4年前    浏览数: 971    点赞数: 1

字符串匹配算法之 BF 算法

数据结构与算法 字符串匹配

今天开始,我们将花三篇文章的篇幅由浅及深地介绍几个字符串匹配算法,首先从最简单的字符串匹配算法 —— BF 算法说起,BF 是 Br...

由 学院君 发布于4年前    浏览数: 897    点赞数: 0

PHP 数组底层实现原理(二)

数据结构与算法 散列表

数组的初始化 数组的初始化主要是针对 HashTable 成员的设置,初始化时并不会立即分配 arData 的内存,插入第一个元素...

由 学院君 发布于4年前    浏览数: 618    点赞数: 0