算法
文章平均质量分 54
abel_qiu
在各种新奇技术的背后,是对计算机基础的理解与认知,在对计算机基础的认知背后是人的学习能力和思维能力,在思维能力背后,是我对这个世界的好奇心,在好奇心的背后是要变的更有智慧的万丈雄心。
展开
-
关于Kruskal算法的一点想法
关于Kruskal算法的一点想法首先是cut property ,对于两个互不相交的,也没有边 cross这两个子集,如果在这两个子集的两个节点之间找条权重最轻的边,则符合最小生成树的过程。伪代码:Procedure kruskal( G,w)Input: A connected undirected graph G=(V,E) with edges weigh原创 2015-05-24 09:30:48 · 560 阅读 · 0 评论 -
双向链表操作
看agent代码,对双向链表的插入,应该是如下的过程注意当r不存在即p->next == NULL的时候, 3步骤省略原创 2016-07-22 15:50:15 · 292 阅读 · 0 评论 -
HAproxy 和Agent的内存管理
今天读了agent的内存管理,其优势在于不用频繁地申请和释放内存,从而消耗时间,但是也有劣势在于内存只会增加,不会下降。那么下面来解读一下它的实现。一: 首先从基本架构来说,可以看到,在内存里面其实是由链表连接的pool。 每个pool包含了一个链表和size,链表内的每个项表示每个内存块,每个内存块的大小由size决定,。可以看下面的数据结构。一些重要的数据项已经用注释说明。struct po原创 2016-10-11 11:10:21 · 542 阅读 · 3 评论 -
异步化方案
最近做项目,需要调用的一些服务,但是这个服务本身和主线程没有什么关联,所以这时候我们可以将其异步化,从而提升整体的性能。 然后我是怎么做的呢? 第一步,肯定是要开启线程,初始化mutexpthread_mutex_t locker; pthread_cond_t cond;pthread_t thread;queue<AsynJob *> m_qtransfer; //队列作为缓冲区p原创 2017-03-02 15:11:17 · 434 阅读 · 0 评论 -
小顶堆
废话不多说,直接代码, 以后就用这个:/*author : qiuludate : 2017-03-07*/#ifndef _MIN_HEAP_H#define _MIN_HEAP_H#include<vector>using namespace std;template <class T>class MinHeap{public: MinHeap():m_HeapSize原创 2017-03-07 16:18:40 · 333 阅读 · 0 评论 -
network flow 最大流
好久没写了,最近研究了一下,最大流算法。其实主要的思路,是寻找增广路径,找不到起点到汇点时就没有了。下面写下代码好了。最大流算法能解决的问题,1. 顾明思义,即一组网络上能够容纳的最大流量问题2. 可以解决数学的组合问题。其原理上还是一个规划问题下面的代码是,通过bfs找到一条增广路径。int find_path_bfs(int s, int e){ i...原创 2018-11-09 15:10:57 · 447 阅读 · 0 评论 -
redis skiplist阅读
撸过一遍代码之后,对一些数据结构才能更深的了解读完redis的跳跃表,现在用c++重新实现了插入、查询和删除3个api方法,理解下来跳跃表,主要思路有1. 从上层逐渐到下层搜索,上层步长更大,这样上层迅速定位到一个更接近的点。2. 下层用于精细化查找,速度更慢3. 与有序数组相似,有序数组的查找效率是N,这个为logN主要用途:1. 网络框架中,根据sequenc...原创 2018-12-11 14:07:10 · 120 阅读 · 0 评论