5 cominglately

尚未进行身份认证

时间好快 ... 勉力前行

等级
TA的排名 2k+

二叉搜索树

文章目录介绍实现介绍满足下面两个特性的二叉树就是二叉搜索树顺序性任一节点r的左子树中,所有节点均不大于r , 右子树所有节点均不小于r中旬遍历序列中序遍历序列单调非降实现// 引入二叉树#include "BinTree.h"//定义二叉搜索树模板类template<typename T>class BST : public BinTr...

2020-03-31 18:20:35

最短路径算法

文章目录场景性质和最小支撑树的区别代码实现场景给定带权网络G,远点s 对于所有的其他顶点v, s到v的最短通路是多少?该通路由哪些边构成性质单调性最短路径树上的任一顶点v到必定是源点s到v的最短路径歧义性最短路径可能不唯一无环性和最小支撑树的区别最小支撑树求的是整个拓扑图的所有路径之和最小,不能保证任意两点之间的路径最小 应用场景: 快递车将霍送到城市的每...

2020-03-29 13:31:37

最小支撑树(Prim)算法

文章目录算法介绍代码实现算法介绍学习记录支撑树覆盖原图的无环联通子图称作原图的一颗支撑树(生成树)最小支撑树成本最低的支撑树,而成本是各边权重的总和割顶点集V的任一非平凡子集和它的补集都构成一个割。桥如果边uv满足顶点u在子集,v在补集 则称边uv是割的跨越边,也叫做桥。prim算法算法原理最小支撑树总是采用连接每一割的最短桥算法实现(...

2020-03-29 00:10:43

优先级算法

文章目录介绍实现源码介绍学习记录给所有顶点赋予不同的优先级数, 随着算法的推进不断调整, 每一步迭代选取的顶点都是当时优先级数最低的那个。负责调整优先级的部分以函数对象形式实现实现源码 // 优先级搜索算法 template <typename PU> void pfs(int v, PU prioUpdater){ // 重置图状态 ...

2020-03-23 00:22:35

双连通域分解算法

文章目录算法介绍算法实现算法源码算法介绍学习记录关节点图G删除顶点v后包含的连通域增多,则称v是关节点双连通图不包含关节点的图,任何一个无向图都可以视作由若干个极大的双连通子图组成算法实现可以利用深度优先算法实现,在DFS搜索过程中记录和更新u所能联通的最高祖先(经后向边), hca(u) < dTime(v) 则说明u可以联通v的真祖先,v不是关节点;否则...

2020-03-22 10:02:17

拓扑排序

文章目录拓扑排序介绍实现思路算法实现拓扑排序介绍学习记录定义: 一个线性序列,该序列中的顶点都不可以通过边指向该序列中的前驱顶点; 该序列成为原图的一个拓扑排序PS:有向无环图才可以实现拓扑排序实现思路该序列的最后一个顶点的出度一定是0,去掉该顶点后,新的末尾顶点的出度也是0 .. .;而此过程对应着深度优先算法, 只需要要将顶点按照访问结束的次序反过来; 这部分操作可以通过栈完...

2020-03-21 17:29:17

ES-PHP 聚合查询时 No alive nodes found in your cluster

文章目录场景过程解决场景一个聚合查询,时间范围短时,正常响应; 时间范围长时,异常;查看日志 No alive nodes found in your cluster线下环境限于数据量的问题,无法复现过程首先确定es是正常启动状态查了No alive nodes found in your cluster案列没有和自己一样的分析异常响应和正常的响应的区别,判断问题出在es设置上...

2020-03-17 11:47:33

深度优先算法

文章目录介绍实现介绍学习记录优先选取最后一个被访问到的顶点的邻居, 而访问完毕顺序类似于后序遍历首先访问顶点s,才从未访问的领军中任选其一, 然后递归执行上述步骤, 知道没有被访问顶点没有邻接顶点, 此时这个顶点才算访问完毕类似于树的后序遍历算法实现 // 深度优先算法 void dfs(int s) { // 初始化 rese...

2020-03-15 21:20:52

广度优先算法

文章目录基本信息实现基本信息越早被访问到的顶点,其邻居越优先被选用先访问顶点s,再依此访问未被访问到的邻居,再按照后者被访问的先后循序一次访问它们的邻居和树的层次遍历相似实现 // 广度优先算法 void bfs(int s) { // 重置图关系 reset(); // 时间标签 int cl...

2020-03-15 17:51:02

邻接矩阵实现

文章目录介绍实现介绍学习记录定义使用方阵A[n][n]表示n个顶点之间构成的图,其中每个单元负责对一对顶点之间邻接关系进行描述缺点方阵可以描述所有可能存在的边的关系, 但是实际问题边并没有出现那么多,浪费了大量的空间; 可以使用A[n] = LIST代替(邻接列表),列表中只存放当前节点一定存在的邻接顶点实现//// Created by carso on 202...

2020-03-15 17:15:46

位图结构

文章目录简介实现原理位运算的实现实现简介位图结构实现是参考[邓俊辉]数据结构习题解析第三版位图是一种特殊的序列结构,可以动态表示一组无符号整数构成的集合。其长度无限,且其中每个元素的取值都是布尔值(初始false)bool test(int k) 整数k是否存在void set(int k) 整数k放入集合void clear(int k) 删除整数k本文用来记录...

2020-02-29 14:37:47

试探回溯法解决八皇后的问题

文章目录算法描述八皇后的问题算法实现可执行脚本算法描述试探回溯算法试探从零开始,尝试逐步增加候选解的长度(本质上是成批的考察具有特定前缀的所有候选解),这种从长度上逐渐向目标解靠近的尝试叫做试探回溯一般问题候选解都是呈树状分布的,某个节点不合法,则舍弃这个分支,然后回溯到上上个节点,探索其他的可能八皇后的问题算法实现依赖栈实现// 定义女皇结构str...

2020-02-16 22:34:33

列表 选择排序算法

文章目录算法介绍算法实现可运行代码算法介绍选择排序算法适用于序列(列表和向量), 维护无序前缀和有序后继,每次都从无序前缀中选取最大值,插入有序后继算法实现// 从启始于p元素的n个节点中选取最大节点 (rank(p), n+ rank(p)) 不包含template <typename T> ListNodePosi(T) List<T>::selectM...

2020-02-04 00:12:48

列表的插入排序算法

文章目录场景列表插入排序算法实现完整代码场景插入排序算法的描述适用于序列 (列表/向量)实现将序列分成前后两个序列, 前缀序列是有序的, 后继序列是无序的,每次循环都将后继序列的首个节点插入到前缀序列的合适位置列表插入排序算法实现// 插入排序: 对于起始于节点p的n个节点进行排序(包含N) 将序列分成有序的前缀和无序的后缀, 反复的将无序后缀的首元素插入到前缀...

2020-01-31 20:07:08

ES 初始化索引时应关闭刷新提升写入性能

文章目录场景关闭refresh_interval场景es是近实时搜索, 从写入到读取是需要的时间的, 这个时间由refresh_interval来决定; 在初始化时需要关闭以提升性能关闭refresh_interval取值解释-1 关闭自动刷新1 1毫秒'1s ’ 1秒‘1m’ 1分钟 $params = [ 'index'...

2020-01-19 17:10:06

有序向量去重算法

文章目录场景算法实现运行实例场景有序向量去重,理论上的最优解是O(n)算法实现算法复杂度 O(n) ,// 有序向量的唯一算法, 返回删除的元素个数int sortVectorUnique(vector<RANGE> &ages) { int old_size = ages.size(); int left_index = 0, right_...

2020-01-16 18:17:40

归并排序算法

文章目录归并排序算法算法实现调用案列归并排序算法算法实现两个有序的向量或者列表, 每次只比较两个有序序列中首个元素,取小值附加到空序列上, 一旦一个序列空了,另外一个序列的元素可以直接附加到空序列上和冒泡排序相比的优势冒泡排序的复杂度是 O(n^2), 最好情况下是 O(n) 最坏的情况 O(n^2) 不稳定; 而归并排序算法一直是 O(nlogn)算法实现tem...

2020-01-15 09:53:44

冒泡排序也可以写出一些花样

场景冒泡排序是简单的算法, 但是还是有些花样的原理: 单趟扫描交换使最后一个元素永远是最大的, 扫描知到不需要发生交换花样: 单趟扫描算法返回true表示剩下元素都是排过序的, 不需要继续循环算法主体// 单趟扫描交换算法主体算法template<typename T>bool bubble(T &numbers, RANK low, RANK high...

2020-01-12 21:05:47

有序向量去重算法

文章目录算法简述算法实现算法简述有序向量去掉重复的元素算法实现// 有序向量的唯一算法, 返回删除的元素个数int sortVectorUnique(vector<T> &ages) { int old_size = ages.size(); int left_index = 0, right_index = 0; while (++ri...

2020-01-06 15:39:00

向量整体置乱算法

场景使向量各个元素等概率出现在各个位置实现template<typename T>void permute(vector<T> &V) { for (int i = V.size(); i > 1; --i) { // 随机置乱向量 使各个元素等概率出现在各个位置 swap(V[i - 1], V(rand() % i));...

2020-01-06 11:39:50

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。