自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 求最长回文子串,O(n)复杂度

最长回文子串问题—Manacher算法最长回文串问题是一个经典的算法题。0. 问题定义最长回文子串问题:给定一个字符串,求它的最长回文子串长度。如果一个字符串正着读和反着读是一样的,那它就是回文串。下面是一些回文串的实例:12321 a aba abba aaaa tattarrattat(牛津英语词典中最长的回文单词)

2016-04-04 13:25:09 4426 1

转载 一致性哈希算法及其在分布式系统中的应用

摘要本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。分布式缓存问题假设我们有一个网站,最近发现随着流量增加,服务器压力越来越大

2015-08-17 20:47:49 631

转载 分布式 Nosql

系统的可扩展性是推动NoSQL运动发展的的主要理由,包含了分布式系统协调,故障转移,资源管理和许多其他特性。这么讲使得NoSQL听起来像是一个大筐,什么都能塞进去。尽管NoSQL运动并没有给分布式数据处理带来根本性的技术变革,但是依然引发了铺天盖地的关于各种协议和算法的研究以及实践。正是通过这些尝试逐渐总结出了一些行之有效的数据库构建方法。在这篇文章里,我将针对NoSQL数据库的分布式特点进行一些

2015-08-17 20:43:21 581

转载 简单说明日志文件系统的作用

文件系统是用来管理和组织保存在磁盘驱动器上的数据的系统软件,其实现了数据完整性的保证,也就是保证写入磁盘的数据和随后读出的内容的一致性。除 了保存以文件方式存储的数据以外,一个文件系统同样存储和管理关于文件和文件系统自身的一些重要信息(例如:日期时间、属主、访问权限、文件大小和存储位 置等等)。这些信息通常被称为元数据(metadata)。由于为了避免磁盘访问瓶颈效应,一般文件系统大都以异

2015-05-13 15:45:28 1079

转载 数据库引擎简介

数据库引擎介绍MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL+API自己做一个引擎。下面介绍几种数据库引擎:    ISAM:ISAM是一个定义明确且

2015-05-04 14:44:07 417

原创 信号量与互斥锁

信号量与普通整型变量的区别:①信号量(semaphore)是非负整型变量,除了初始化之外,它只能通过两个标准原子操作:wait(semap) , signal(semap) ; 来进行访问;②操作也被成为PV原语(P来源于Dutch proberen"测试",V来源于Dutch verhogen"增加"),而普通整型变量则可以在任何语句块中被访问; 信号量与互斥锁之间的

2015-04-29 16:26:04 524

原创 自己动手做文件系统

FUSE(The Filesystem in Userspace)在Kernel中是一个奇特的部分,它允许通常的用户不用修改Kernel或取得Root权限,就能制作或使用他们自己的文件系统。在FUSE中使用的文件系统是虚文件系统(Virtual Filesystems),但并非所有的虚文件系统使用的都是FUSE。FUSE的代码Kernel中,但文件系统位于User Space。不过,典型的文件系统

2015-04-22 14:21:31 1932

转载 FUSE 简介

FUSE的工作原理如图所示。假设基于FUSE的用户态文件系统hello挂载在/tmp/fuse目录下。当应用层程序要访问/tmp/fuse下的文件时,通过glibc中的函数进行系统调用,处理这些系统调用的VFS中的函数会调用FUSE在内核中的文件系统;内核中的FUSE文件系统将用户的请求,发送给用户态文件系统hello;用户态文件系统收到请求后,进行处理,将结果返回给内核中的FUSE文件系统;最后

2015-04-21 22:10:11 1736

原创 用匈牙利算法求二分图的最大匹配

1,  用匈牙利算法求二分图的最大匹配算法轮廓:(1)置M为空(2)找出一条增广路径P,通过取反操作获得更大的匹配M’代替M(3)重复(2)操作直到找不出增广路径为止程序文件夹:22222#include   #include     using   namespace  std; const   int  MAXN  =   100 ;

2015-04-20 15:34:16 689

原创 深搜用栈的实现

#includeusing namespace std;int Map[100][100],n,Target;bool Vis[100];struct stack{int node[100];int top;}f;bool DFS(int x){f.top=1;f.node[f.top]=x;while(f.top){in

2015-04-20 15:31:54 1560

原创 求图的切割点

#includeusing namespace std;int Num[100],Low[100],Father[100];bool Mark[100],Map[100][100],Cutpoint[100];int time,n;void DFS(int x){Mark[x]=true;time++;Low[x]=Num[x]=time;f

2015-04-20 15:31:21 366

原创 关键路径

#include#includeusing namespace std;int  Map[100][100],Value[100];bool Mark[100];int n,s,t;//if Max was defined here things will be much different now!int CP(int x){//if(Ma

2015-04-20 15:31:20 374

原创 基于BFS的最大流算法(Edmonds)

#includeusing namespace std;#define MAXN 10003 bool Vis[100];int Map[100][100],F[100][100],n,Target,Min;struct queen{int top;int end;int node[100];}f;struct vertex{

2015-04-20 15:30:40 779

原创 Prim算法求最小生成树

#includeusing namespace std;#define MAXN 10002int Map[100][100],Vis[100],Low[100],Tree[100];int n;void Prim(){int i,j,p;int minc;memset(Vis,0,sizeof(Vis));Vis[0]=1;for( i=1

2015-04-20 15:30:39 783

原创 Dijkstra算法

#include#includeusing namespace std;#define MAXN 10002int Map[100][100],D[100],n,Target;bool Vis[100];void Dijkstra(int x){Vis[x]=true;int min=MAXN,count;while(!Vis[Targe

2015-04-20 15:28:43 366

原创 Ford&Fulkerson 最大流问题

#includeusing namespace std;#define MAXN 10000003int n,sink;bool Vis[100];__int64 C[100][100],F[100][100];struct list{int value;bool dir;};struct stack{int top;list

2015-04-20 15:28:00 630

原创 DFS的时间戳应用

#includeusing namespace std;bool Map[100][100],Vis[100];int d[100],f[100],n,time;void DFS(int x){Vis[x]=1;d[x]=time;for(int i=0;i{if(Map[x][i]&&!Vis[i]){Map[x][i]=0;

2015-04-20 15:26:36 1460

原创 欧拉图算法

首先考虑是欧拉图。若从一个顶点出发,利用DFS,将新搜索到的顶点保存到栈顶,并且将走过的边给删除,那么一定能访问到这个初始顶点。因为除起始顶点外其他的顶点若被访问到那么一定能去访问别的顶点。但是起始顶点不同,它是被直接访问的,即没有通过别的顶点去访问它,因此我们一定能找到这样的回路,使得起始顶点和终点是同一顶点,设为v,并且v的所有边都在这条回路上。我们用栈来保存这些顶点(按访问的顺序),如果此时

2015-04-20 15:25:19 2126

原创 深度搜索

#include using namespace std;const int maxn = 100;int n, m;int map[maxn][maxn], sign[maxn][maxn];int startx, starty, endx, endy;int dir[4][2] = {-1, 0, 0, 1, 1, 0, 0, -1};boo

2015-04-01 14:46:38 644

原创 DFS

#include using namespace std;const int maxn = 100;int n, m;int map[maxn][maxn], vis[maxn][maxn];int startx, starty, endx, endy;int dir[4][2] = {-1, 0, 0, 1, 1, 0, 0, -1};

2015-04-01 14:45:03 506

原创 深度搜索(用结构体)

#includeusing namespace std;const int maxn = 100 ;int n,m;int map[maxn][maxn],sign[maxn][maxn];int startx,starty,endx,endy;int dir[4][2] = {-1,0,0,1,1,0,0,-1};struct POSITION

2015-04-01 14:44:58 503

原创 DFS (栈改BFS)

#include #include using namespace std;struct POSITION {    int x, y;        bool operator == (const POSITION &oth) const {        return x == oth.x && y == oth.y;    }    bool op

2015-04-01 14:43:45 621

原创 BFS

#include #include using namespace std;struct POSITION {    int x, y;        bool operator == (const POSITION &oth) const {        return x == oth.x && y == oth.y;    }    bool op

2015-04-01 14:42:59 455

原创 BFS(迷宫)

#include #include using namespace std;struct POSITION {    int x, y;        bool operator == (const POSITION &oth) const {        return x == oth.x && y == oth.y;    }    bool op

2015-04-01 14:42:44 578

原创 BFS 数组模拟队(有向图)

#includeusing namespace std;const int Limit = 400,maxinum = 10000;int data[Limit][Limit],visited[Limit];int N,S,T;int queue[Limit];bool BFS(int S,int m){    int i,open = 1,cl

2015-04-01 14:41:16 728

原创 BFS 队 (有向图)

#include#includeusing namespace std;const int Limit = 400,maxinum = 10000;int data[Limit][Limit],visited[Limit];            //data[][]为图的邻接矩阵  visited[i]用于记录起源点到点i的最短路径长度; int N,S,T;

2015-04-01 14:40:26 490

原创 哈夫曼编码

我大一时实现的哈弗曼编码,用的是静态方法(只能统计在ascII中出现的字符)

2015-04-01 14:31:35 534

转载 Linux服务器性能评估与优化

一、影响Linux服务器性能的因素 1. 操作系统级 Ø       CPUØ       内存Ø       磁盘I/O带宽Ø       网络I/O带宽 2.        程序应用级 二、系统性能评估标准影响性能因素评判标准好坏

2015-03-26 14:16:58 466

转载 TFS Erasure code实现方案

TFS Erasure code实现方案TFS发展至今,集群部署总容量已超过50PB,机器数量约2700台。TFS在阿里内部主流部署方式是主集群内数据块2个副本,每个主集群配置两个备集群,分别在同城和异地机房,实际上每份数据6个副本,存储成本非常高,为了降低TFS存储成本,我们将Erasre code引入到TFS系统,本文将详细介绍TFS应用Erasure code的技术方

2015-03-26 10:34:59 490

转载 一致性hash

转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179    一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正

2015-03-25 21:39:43 581

原创 看到的面试题,请容我一道一道的解析(假以时日),希望大家留言一起探讨~

很经典的面试题,有Google,Microsoft等知名IT公司的面试题。让我们一起研究一起进步吧~

2015-03-19 15:19:56 2633

原创 把二元查找树转变成排序的双向链表

把二元查找树转变成排序的双向链表:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16。  给出一个节点数据结构struct node{char data;node *

2015-03-19 14:41:24 400

原创 试着用物理学第一原理思考问题

Elon Musk’s Secret Weapon: A Beginner’s Guide to First PrinciplesAdvice November 14, 2013Elon Musk is the CEO of Tesla Motors, an American electric car manufacturing company. The company h

2015-03-18 12:30:04 2254

转载 面试题

Problem 1 :Is it a loop ? (判断链表是否有环?)Problem 2:设计一个复杂度为n的算法找到链表倒数第m个元素。最后一个元素假定是倒数第0个Problem 3:用最简单的方法判断一个LONG整形的数A是2^n(2的n次方)Problem 4:两个烧杯,一个放糖一个放盐,用勺子舀一勺糖到盐,搅拌均匀,然后舀一勺混合物会放糖的烧杯,问你两个

2015-03-17 14:26:31 849 1

原创 数组调整

大小为2n的数组,前n个元素分别为a1,a2,...,an. 后n个元素分别是b1,b2,bn. 现在希望将数组重新排列,重排后希望得到的数组为a1,b1,a2,b2,...,an,bn.请设计空间复杂度为O(1),时间复杂度为O(n)的算法。

2015-03-16 21:09:20 420

原创 我的第一篇博客

以前一直想写CSDN博客,估计

2014-10-31 14:13:05 394

Google C++编程规范

Google内部对于C++编程的规范,其中规范了编程的格式和一些要主要的事项。 很好很强大~

2015-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除