写文出发点 最近在调研基于GO语言的开源网关,想找个性能不错,扩展性强,还有免费控制台的网关。 然后在github上发现一个不错的项目,APINTO网关,项目首页是https...
写文出发点 最近在调研基于GO语言的开源网关,想找个性能不错,扩展性强,还有免费控制台的网关。 然后在github上发现一个不错的项目,APINTO网关,项目首页是https...
为什么使用动态库:比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。其中可能存在一些模块的功能较为通用,在构造其它软件系...
内存的四区模型 ps:常量区在全局区中 栈区和堆区 全局区 main函数中可以在栈/堆/全局分配内存,都可以被func1和func2使用 func2在栈上分配的内存,不能被f...
dijkstra单源最短路径算法 前提:图中不能有负权边因为存在负权环的话就不存在最短路径 复杂度 O(ElogV) Bellman-Ford单源最短路径算法 前提:不能有负...
有权图 表示边的类 有权邻接表 有权邻接矩阵 最小生成树 找v-1条边连接v个顶点总权值最小针对带权无向图、针对连通图 稀疏图适合kruskal稠密图适合prim Lazy ...
图论Graph Theory 图的分类根据边可以分成有向图和无向图无向图是一种特殊的有向图 根据边的权值可以分成有权图和无权图 简单图是不包含自环边和平行边的图 图的表示及相...
并查集主要解决连接问题并查集操作:find(i) 查找父亲结点isConnected(p,q) 查询是否相连,返回boolunionElements(p,q)合并两个结点 普...
二叉搜索树 二叉搜索树用来解决计算机中非常重要的基础问题——查找问题。 二分查找法 对于有序数列才能使用二分查找法。 二分查找法的变种floor与ceil 当有序数组中存在大...
优先队列 优先队列 :出队顺序与入队顺序无关;和优先级相关,是由堆实现的头文件是queue 定义:priority_queue<Type, Container, Functi...
快排和归并排序的思想都是分治 归并排序 整体而已,归并排序比插入排序更优但近乎有序的数组,归并排序还是比插入排序慢。以下是自顶向下的归并排序 归并排序的优化 经过优化后依然是...
主要介绍选择排序和插入排序。冒泡排序和希尔排序简单过过。另外希尔排序时间复杂度不能确定,要看d的取值 所以排序算法中,只有冒泡排序、插入排序、基数排序、归并排序是稳定的,其它...
模版方法模式 定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 AbstractClass(抽...
结构型模式:让类和类进行组合,获得更大的结构。 代理模式 代理模式的定义: 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对...
简单工厂模式 简单工厂模式的优缺点及适用场景 优点:(1)实现了对象创建和使用的分离。(2)不需要记住具体类名,记住参数即可,减少使用者记忆量。 缺点:(1)对工厂类职责过重...
概述 设计模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。 软件设计模式的种类:创建型(Creational)模式: 如何创建对象;结构型(Struct...
软件建模 软件建模的作用是把源于现实世界的问题转化为计算机可以理解和实现的过程。 软件建模的实现过程是从需求入手, 用模型表达分析设计过程, 最终将模型映射成软件实现. UM...
常用拷贝和替换算法 常用算数生成算法 常用集合算法
常用查找算法 常用排序算法
算法概述 算法主要是由头文件 <functional> <numeric>组成。 是所有STL头文件中最大的一个,其中常用的功能涉及到比较,交换,查找,遍历,复制,修改,反...