Pistachio's Blog

Later equals never.

红黑树

红黑树(Red Black Tree)是对二叉搜索树的改进,解决二叉搜索树多次插入新节点导致的不平衡问题。对于搜索、插入和删除较多操作的情况下,通常使用红黑树。 红黑树的底层结构是二叉查找树。 其产生过程:链表->二叉树->二叉查找树->自平衡的二叉查找树 特性以下特性保证了红黑树的平衡特性,确保没有一条路径比其它路径长出两倍 是自平衡的二叉查找树 结点是红色或黑色 根......

Redis基础知识

一、简介Redis是一种高性能的NoSQL(not only sql)非关系型数据库,key-value存储。key可以是任意类型,redis底层会转换为string。而value可以是五种的基本类型。 二、启动、状态、结束123systemctl start redis-serversystemctl status redis-serversystemctl stop redis-serv......

操作系统的内存管理

操作系统加载进内存之后,要对内存进行管理 计算机基本硬件结构 操作系统管理内存的不同方法 程序重定位 分段 分页 虚拟内存(硬盘) 按需分页虚拟内存 ...

【结构型】装饰者模式

一、定义动态(组合)地给一个对象增加一些额外的指责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码 & 减少子类个数) 动态地把职责添加到对象上,若想添加功能,装饰者类提供了比继承更有弹性的方案。 二、结构 例子:很多中单品咖啡,很多种调料的不同组合 把被装饰着放到装饰者中管理,例如调料是装饰者,单品咖啡是被装饰者,则把单品咖啡放到调料中管理。 这种......

组合模式

模式简介 组合模式适用于树形结构的模型,表示部分与整体的层次关系,例如文件夹中有文件夹或文件;大学中有不同学院,学院中有不同专业……,故属于结构型模式。 该模式创建对象组的树形结构,将对象组合成树状结构,以表示部分与整体的层次。 组合模式能让客户以一致的方式处理个别对象和组合对象。 原理结构图 1)Component:(部件)这是在组合对象中声明的接口或者抽象类,实现所有类中共有的接口的默......

【结构型】适配器模式

一、定义将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的类能够一起工作。 二、结构 Adapter->Adaptee是组合的关系(is a) 三、例子1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950// ......

排序算法

一、冒泡排序(稳定 O(N)~ O(N^2^))基本思想:两两数字比较,比较在每一趟遍历中,看当前数字会不会比下一个大,如果比下一个大则交换。每一趟交换中能找到最大的数,放在末尾。 最好情况:顺序 只需遍历一遍 T = O(N) 最坏情况:逆序 全部都得排序 T = O(N^2^) 如数组:5,3,7,10,6,18,4 123456789101112131415161......

约瑟夫环问题

LeetCode 0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 1234567int lastRemaining(int n, int m) { int ans = 0; for(int i = 2; i <= n; i++){ ans = (......

【创建型】原型模式

一、定义使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。(比较少见,但要知道其使用技巧) 二、结构 与工厂模式的相同&区别 和工厂模式一样,都是用于解决对象创建的问题, 但如果对象创建比较复杂,需要考虑状态变化,则使用原型模式。否则用工厂 深克隆实现深克隆有两种方式 1.种是采用序列化的方式实现2.采用依次克隆各个可变的引用类型域 覆盖Object中的clo......

PHP面向对象

构造方法只要类被实例化之后,构造方法会被执行,就是在对象执行方法之前。 构造方法必须为public,否则无法被实例化 12345678910111213<?phpclass Number{ public function __construct(){ echo "1输出"; echo "2输出"; ......