重温设计模式之 Factory

前言创建型模式的核心干将,工厂、简单工厂、抽象工厂,还记得清么,一文回顾和对比下。一 为什么需要工厂系统中总是需要创建对象的,一般使用new()来创建对象。创建对象可以是简单的new(),也可以有复杂的加工逻辑,如果在主程序中创建对象,那么就是将主干逻辑和创建对象的非主干逻辑耦合在了一起,工厂模式

选择排序

Selection SortSelection sort is a sorting algorithm, specifically anin-place comparison sort. It has O(n2) time complexity,making it inefficient on la

冒泡排序

冒泡排序交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。本文介绍第一种交换排序方法:冒泡排序。排序方法将被排序的记录数组 R[1..n]垂直排列,每个记录 R[i]看作是重量为 R

性能优化:关于缓存的一些思考

利用缓存做性能优化的案例非常多,从基础的操作系统到数据库、分布式缓存、本地缓存等。它们表现形式各异,却有着共同的朴素的本质:弥补CPU的高算力和IO的慢读写之间巨大的鸿沟。和架构选型类似,每引入一个组件,都会导致复杂度的上升。以缓存为例,它带来性能提升的同时,也带来一些问题,需要开发者设计和权衡。本

数据结构与算法笔记

基础数据结构数组在计算机科学中,数组是我们最熟悉也是最基础的一种数据结构。通常地,数组由有限个相同数据类型的元素按顺序排列组合而成。数组的数据是连续的,并且会设定上界和下界,其中的每个元素都有属于它们自己的索引值(也就是下标),通过这些下标就能定位到元素。对于绝大多数编程语言来说,数组的索引都是从0