摘要:
需掌握:PHP原理 Mysql底层 NGINX Linux Redis TCP/IP HTTP 数据结构 算法 设计模式 架构 安全 Mysql 锁机制 http://blog.csdn.net/soonfly/article/details/70238902 MySQL索引背后的数据结构及算法原理 阅读全文
摘要:
策略模式 策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。 策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。 策略模式的三个角色: 1.抽象策略角色 2.具体策略角色 3.环境角色(对抽象策略 阅读全文
摘要:
Aggregate是MongoDB提供的众多工具中的比较重要的一个,类似于SQL语句中的GROUP BY。聚合工具可以让开发人员直接使用MongoDB原生的命令操作数据库中的数据,并且按照要求进行聚合。 MongoDB提供了三种执行聚合的方法:Aggregation Pipleline,map-re 阅读全文
摘要:
《PHP7底层设计与源码实现》一书的作者陈雷亲自给我们授课,大佬现身!但也因此深感自己基础薄弱,遂买了此书。希望看完这本书后,能让我对PHP7底层的认识更上一层楼。好了,言归正传,本书共14章,此篇笔记是1~2章的总结,主要介绍了PHP7的新特性、执行原理和PHP源码结构。 一、PHP7的新特性 新 阅读全文
摘要:
一、基本思想 桶排序是将待排序的数据分割成许多buckets,然后每个bucket各自排序,或用不同的排序算法,或者递归的使用bucket sort算法。也是典型的分而治之(divide-and-conquer)的策略。 二、算法过程及PHP代码实现 1)找出待排序数组arr中的最大值max、最小值 阅读全文
摘要:
一、基本思想 快速排序又称划分交换排序,是对冒泡排序的一种改进,亦是分而治之思想在排序算法上的典型应用。 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到 阅读全文
摘要:
一、基本思想 归并排序算法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,使每个子序列有序,再将已有序的子序列合并,得到完全有序的序列。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 二、算法过程 归并主要做两件事: 1)“分解”— 阅读全文
摘要:
一、基本思想 希尔排序算法是希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一 阅读全文
摘要:
一、堆的定义 堆通常是一个可以被看做一棵树的数组对象,其任一非叶节点满足以下性质: 1)堆中某个节点的值总是不大于或不小于其父节点的值: 每个节点的值都大于或等于其左右子节点的值,称为大顶堆。即:arr[i] >= arr[2i+1] && arr[i] >= arr[2i+2]。 或: 每个节点的 阅读全文