摘要:
PHP7中Protobuf的安装使用 写这篇文章的缘由是最近在关注RPC框架序列化的一些原理。但是在安装Protobuf的时候,发现网上的教程都太老了,加上目前Protobuf官方已经支持PHP了,不再需要使用第三方插件了。 关于序列化和反序列化 在PRC框架中,数据的传输发生在客户端和服务端,而我 阅读全文
摘要:
二叉树的递归和非递归遍历 二叉树的遍历方式 由于二叉树不是线性结构,所以遍历方式可能有多样,二叉树的遍历方式一共有四种情况:先序遍历,中序遍历,后序遍历,层次遍历。 所有的遍历都是从根节点出发 先序遍历 先序遍历的过程为: 1. 访问根节点 2. 先序遍历其左子树 3. 先序遍历其右子树 先序遍历的 阅读全文
摘要:
基础闯关记 二叉搜索树 树的定义 树:n(n =0)个节点构成的有限集合。 当n=0是称为 空树 。 对于任何一棵非空树(n 0),它具备以下性质: 1. 树种有一个称为 根 的特殊节点 2. 其余节点又可分为m个互不相交的有限集合,其中每个集合本身又是一棵树,称为原来树的 子树 比如下面就是一棵典 阅读全文
摘要:
线性表 什么是线性表 线性表的定义: 线性表是n个具有相同特性的数据元素的有限序列 。线性表是一种最简单,最基本,也是最常用的一种 逻辑 线性结构。 一个线性表通常记为:(A1,A2,A3 …… An)。其中n为表长;当n为0时,称为空表。 线性表的存储方式 注意,线性表是一种逻辑线性结构,所以我们 阅读全文
摘要:
基数排序 如果要问排序哪家快,那一定是基数排序,在线性时间内即可完成排序。在了解基数排序之前,我们先了解一下基础排序的低配版 桶排序。桶排序是一种典型的空间换时间的排序方法,小规模排序(比如1 100分数排序)是可以靠桶排序完成的,所以我们先介绍桶排序,然后看看桶排序的缺点,最后介绍基数排序 桶排序 阅读全文
摘要:
快速排序 快速排序基本思想 快速排序的基本思想就是分治法,就是将一个大的数组按照某一中间值分成两个子集,一组是每个元素都大于中间值,另一组是每个元素都小于中间值,然后递归调用该过程,最后可完成排序。步骤: 整个过程可以用下图的竹竿按从低到高的顺序排序,首先我们找出第一根杆子为标准,剩下的高杆移到右边 阅读全文
摘要:
堆排序 堆排序,毫无以为,是在堆的数据结构上进行排序,注意,我们这里谈论的堆是二叉堆。所以首先了解二叉堆,然后在二叉堆的基础上排序是很容易的一件事情。 什么是二叉堆 二叉堆的结构就是完全二叉树或者近似完全二叉树。在二叉树的结构上保持一定的有序性就是二叉堆,根据这种有序性的不同,分为 和`最小堆` 举 阅读全文
摘要:
从CGI到FastCGI到PHP FPM 背景 笔者在学习这几个名词的时候,也是被百度到的相关文章迷惑。涉及到的主要名词包括 要真正理解这些名词,如果我们硬生生的解释,也很难记住。我们可以从web服务器开发的历程来看,看看他们为什么会出现,以及他们解决了什么问题。 早些年的简单服务器 早些年的服务器 阅读全文
摘要:
Nginx开发HTTP模块入门 我们以一个最简单的Hello World模块为例,学习Nginx的模块编写。假设我们的模块在nginx配置文件中的指令名称为 ,那我们就可以在nginx.conf文件中配置这个指令 这样,当我们访问首页的时候就会执行 指令,输出Hello World。接下来,就开始编 阅读全文
摘要:
Memcache入门 memcached介绍 memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然 阅读全文