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