Recently Publish Pages
解决 TopK 问题的利器(上):堆和堆的构建
什么是堆 堆是一种特殊的二叉树,具备以下特性: 堆是一个完全二叉树 每个节点的值都必须大于等于(或小于等于)其左右孩子节点的...
红黑树的动态平衡实现原理分析
插入节点 红黑树规定,插入的节点必须是红色的。而且,二叉排序(查找)树中新插入的节点都是放在叶子节点上。首先,我们来看两种最简单的...
红黑树的特性和算法复杂度
前面几篇分享中我们陆续介绍了平衡二叉树的定义、实现原理、构建过程演示以及对应的实现代码,我们提到平衡二叉树是最理想的二叉排序树,性能...
平衡二叉树(AVL)的实现代码和算法复杂度
下面我们将上一篇分享中演示的平衡二叉树构建示例转化为 PHP 代码。 节点类 我们还是使用二叉链表来实现二叉树的存储,对应的节点...
微服务系统基础组件技术选型
上篇教程学院君给大家介绍了本次微服务重构的服务拆分原则和系统整体架构,今天我们来看下微服务系统各个基础组件的技术选型,这也是我们在开...
通过 HTTP 请求调用 Go Micro 提供的微服务接口
上篇分享我们简单介绍了基于 Go Micro 框架构建第一个微服务接口,并且编写了简单的客户端测试代码,但是这个客户端代码也是集成在...
基于 Go Micro 框架构建一个简单的微服务接口
友情提示:由于 Go Micro 已经将 Consul 从开箱支持调整为插件支持,所以本篇教程对于新手已经不再适用,最新版本教程在这...
Go Micro 初探及其底层架构
前面几篇分享学院君已经给大家介绍了微服务的背景和概念、总体设计、适用场景、服务拆分以及要提前做好的技术保障,接下来我们正式开始介绍微...
快速定位无用路由 妈妈再也不用担心人工排雷了
介绍 看到 Github 一个包,跟踪路由的请求,记录哪个路由在哪一个时刻被调用。这个包最大的目的不是分析数据,而是可以随时随地的...
平衡二叉树的构建实现过程演示
我们在上一篇文章中分享了平衡二叉树的定义和实现原理,这一节我们来演示如何通过代码实现平衡二叉树,最后分析下平衡二叉树的算法复杂度。 ...
平衡二叉树(AVL)的定义和实现原理
引子 上一篇我们介绍了二叉排序树,并且提到理想情况下,二叉排序树的插入、删除、查找时间复杂度都是 O(logn),非常高效,而且它...
二叉排序(查找)树的定义及实现
为什么要引入二叉排序树 我们前面已经介绍了很多数据结构,比如数组、链表、散列表等,数组查找性能高,但是插入、删除性能差,链表插入、...
HTTP 编程(二):http.Client 底层实现剖析
除了上篇教程介绍的基本 HTTP 操作,Go 语言标准库也提供了比较底层的 HTTP 相关库,让开发者可以基于这些库灵活定制 HTT...
基于 Swoole 开发实时在线聊天室(五):Homestead 开发环境初始化
前段时间有同学咨询学院君如何在 Homestead 中使用 Swoole,就着这个系列顺便介绍下,同时也作为一个引子,介绍下如何扩展...
PHP 字符串匹配函数 strstr 底层实现原理剖析
PHP 提供的字符串匹配函数多是单模式匹配,因此大多通过 KMP 算法实现,我们以 strstr 函数为例,简单对底层实现源码进行剖...