专注PHP Golang开发
固态硬盘接口协议详解 固态硬盘接口协议详解
硬盘接口、通道、协议首先是物理层面的接口,就是插拔的那个口:我们有SATA 3,mSATA,SATA-E,U.2,M.2,PCI-E等物理接口 然后是通信的通道,主要的区别是速率上限不同,主要有: PCI-E 通道:其中PCI-E通道又有
2019-03-16
算法-排列组合 算法-排列组合
排列组合数学上的阶乘、排列、组合的实现 代码实现<?php /** * 阶乘 * @param int $n * @return int */ function factorial(int $n) { //array_
2019-03-01
算法-二分查找 算法-二分查找
二分查找简介二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查
2019-03-01
算法-冒泡排序 算法-冒泡排序
冒泡排序简介冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排
2019-03-01
算法-插入排序 算法-插入排序
插入排序简介插入排序(Insertion sort)是一种简单直观且稳定的排序算法。 如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序, 这个时候就要用到一种新的排序方法——插入排序法,
2019-03-01
算法-归并排序 算法-归并排序
归并排序(快速排序)分治法:将原问题分解为几个规模较小但类似的子问题,递归地求解这些子问题,然后再合并这些子问题的解来建立原问题的解 在最坏、最佳、平均情况下归并排序时间复杂度均为o(nlogn) 代码实现<?php /** *
2019-03-01
算法-选择排序 算法-选择排序
选择排序选择排序法思路:每次选择一个相应的元素,然后将其放到指定的位置 实现思路 双重循环完成,外层控制轮数,当前的最小值。内层控制的比较次数 代码实现<?php /** * @param array $arr * @retur
2019-03-01
硬盘知识 硬盘知识
HHD总线/协议分类 总线(Bus):是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号 常见
2019-02-17
PCIe PCIe
简介 在电脑里,不同的设备要想交互数据,就必须要经过一定的通道,就好像现实当中,两个城市要交换货物,就必须要修路,这里的路就和计算机里的总线概念一样,总线就是计算机里,用于走数据的“路”,CPU核心和cache缓存交互数据的时候,使用的就是
2019-02-16
设计模式(23)-访问者模式 设计模式(23)-访问者模式
访问者模式 简介 表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作 访问者模式适用于数据结构相对稳定的系统它把数据结构和作用于结构上的操作之间的耦合脱开,使得操作合集可以相对自由地
2018-10-23
设计模式(22)-模板方法模式 设计模式(22)-模板方法模式
模板方法模式 简介 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤 当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现
2018-10-22
设计模式(21)-策略模式 设计模式(21)-策略模式
策略模式 简介 它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。 策略模式是一种定义一系列算法的方法,从概念上来看,所有的这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方
2018-10-21
设计模式(20)-状态模式 设计模式(20)-状态模式
状态模式 简介 当一个对象的内在状态改变时允许改变其行为,这个对象看起来是改变了其类 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化
2018-10-20
设计模式(20)-状态模式2 设计模式(20)-状态模式2
状态模式2 简介 简单实现一个表示工作状态的类。 代码示例<?php abstract class StateWork { abstract public function writeProgram(Work $w); }
2018-10-20
设计模式(19)-单例模式 设计模式(19)-单例模式
单例模式 简介 保证一个类仅有一个实例,并提供一个访问它的全局访问点 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它
2018-10-19
设计模式(18)-代理模式 设计模式(18)-代理模式
代理模式 简介 为其他对象提供一种代理以控制对这个对象的访问 远程代理 也就是为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象纯在于不同地址空间的事实 虚拟代理 是根据需要创建开销很大的对象,通过它来存放实例化需要很长
2018-10-18
设计模式(17)-原型模式 设计模式(17)-原型模式
原型模式 简介 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 从一个对象再创建另一个可定制的对象,而且不需要知道任何创建的细节 代码示例<?php abstract class Prototype {
2018-10-17
设计模式(16)-简单工厂模式 设计模式(16)-简单工厂模式
简单工厂模式 简介 根据工厂的类型,实例化出类,通常采用swith结构,缺点是对修改没有封闭。 代码示例<?php /** * 简单工厂模式 * * 用一个工厂来创建我们所需要的类 * * Class Operation
2018-10-16
9 / 11