Recently Publish Pages
二分查找案例剖析:IP 地址对应城市查询
今天我们来分享一个二分查找的实际使用案例 —— 根据用户的 IP 地址,获取用户所在的城市。 记得我以前面试的时候,就遇到过这个问...
二分查找的变形版本(下):在给定序列中查找第一个大于等于或最后一个小于等于给定值的元素
我们接着昨天的话题,继续讨论二分查找的变形版本。 二分查找的第三个变形版本:在给定排序序列中查找第一个大于等于给定值的元素。 有...
二分查找的变形版本(上):从给定序列中查找第一个或最后一个匹配元素
日常开发过程中,除了我们昨天讲到的正常的二分查找,还有很多二分查找的变形版本,今天开始,我们就来给大家一一介绍这些变形版本。 符合...
二分查找
介绍完基本的排序算法后,今天我们来介绍一种常见的高效查找算法 —— 二分查找。 二分查找的引入 在介绍二分查找之前,对于基于数字...
二叉树的遍历及代码实现
二叉树的遍历指的是从根节点出发,按照某种次序依次访问二叉树中的所有结点,使得每个结点被访问一次且仅被访问一次。 有多种方式可以遍历...
二叉树的存储
前面我们聊到树和二叉树的定义和特性,树这种结构不能简单通过线性表的前后关系来存储,在线性表中,一个节点只有至多一个前驱节点和至多一个...
二叉树的定义及其特性
在继续介绍其它字符串匹配算法 Trie 树之前,我们先来讲讲树这种数据结构,因为 Trie 树也是一棵树。树比前面讲的数据结构(数组...
Socket 编程(二):Dial 函数的底层实现及超时处理
Dial 函数的底层调用 在上篇教程中,我们介绍了 Go 语言中可以通过 Dial() 函数建立网络连接。实际上,Dial() 函...
PHP 数组排序函数 sort 底层实现分析
前面我们已经介绍了线性表(即线性数据结构,如数组和链表)的常规排序算法,包括冒泡、插入、选择、归并和快排,其中综合性能最好的就是快排...
服务拆分与技术保障
上篇分享学院君给大家介绍了微服务与单体应用的对比和优势,以及什么情况下适合使用微服务架构,对于大公司而言,可能之前已经进行过微服务重...
微服务的优缺点和适用场景
上篇分享我们介绍了微服务的整体架构和组件,可以看到微服务架构要比单体应用的架构复杂很多,所以这篇分享学院君将在正式介绍微服务架构的具...
微服务架构总体设计和基础组件
总体设计 看完微服务的定义后,接下来我们一起走进微服务架构,来看看它的总体设计和各个组成部分。在具体介绍之前先来看下微服务架构的整...
开篇:什么是微服务架构
在网络协议的 RPC 协议部分,我们已经简单介绍了微服务诞生的原因,以及底层 RPC 框架的运行原理,今天开始,我们正式开始微服务架...
快速排序
实现原理 归并排序算法虽好,但是不是原地排序算法,需要消耗额外的内存空间,今天我们要介绍的是常规排序里综合排名最高的排序算法:快速...
选择排序
今天继续介绍排序算法,选择排序。 实现原理 选择排序算法的实现思路有点类似插入排序,也分已排序区间和未排序区间。但是选择排序每次...