- 浏览: 512293 次
- 性别:
- 来自: 北京
最新评论
-
jkxydp:
算法运行的结果根本就不对。
BM算法. -
soarwindzhang:
感谢博主的分享,我今天看了您的UFSET非递归的路径压缩时感觉 ...
并查集 -
zhangning290:
楼主好像只考虑了坏字符规则,。没有考虑好后缀
BM算法. -
lsm0622:
文字描述有错误 误导新学者
求有向图的强连通分量(scc):Tarjan算法 -
knightchen:
博主,你太强了!这篇文章对我学习C++多线程很有帮助!谢谢
并发学习之一_windows下ZThread在CodeBlocks上的安装与配置
文章列表
1,花括号
花括号用来匹配一组用逗号分隔的字符串中的任一个。左花括号之前的所有字符称为前文(preamble),右花括号之后的所有字符称为后文(preamble)。前文和后文都是可选的。花括号中不能包含不加引号的空白符。
2,例子:
(1)$ mkdir /usr/local/src/bash/{old,new,dist,bugs}
在/usr/local/src/bash目录下创建4个新目录,它们分别为:old,new,dist和bugs
(2)$ echo {mam,pap,ba}a
mama papa baa
(3)$ echo post{script,office,ur ...
State模式
- 博客分类:
- Design Pattern
1,状态模式:
控制类中包含所有状态类;
状态类基于一个基类;
每个状态类又有一个控制类成员;
控制类实现每个动作,每个动作内部引起状态的转移.
2,实例代码:
#include <iostream>
#include <memory>
#include <cassert>
#include <ctime>
#include <sstream>
using namespace std;
class State //所有状态类的基类
{
public:
virtual ~State() = 0;
...
1,总结:
基类中包含一个主方法,主方法由若干个子方法组成.
各个子方法的实现由具体的继承类各自实现.
包含一个钩子,决定某些可选方法是否实施.
2,贴个实例代码:
#include <iostream>
#include <memory>
using namespace std;
class CaffeineBeverage
{
public:
virtual ~CaffeineBeverage() = 0;
virtual void prepareRecipe()
{
boilWater();
brew();
p ...
1,可以/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.
用处:
禁止标准输出. 1 cat $filename >/dev/null # 文件内容丢失,而不会输出到标准输出.
禁止标准错误 (来自例子 12-3). 2>/dev/null 这样错误信息[标准错误]就被丢到太平洋去了.
2, 1>/dev/null 2>&1的含义
> 代表重定向到哪里,例如:echo " ...
转载自:http://blog.chinaunix.net/u2/75269/showart_1164080.html
1,source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。
2,source命令(从 C S ...
提升为N的倍数(N为2的指数次)
- 博客分类:
- 语法函数
1,可以这么做:
int num=15;
num = (num + (N-1)) & (~(N-1))
先放这儿,有时间了,在作详细整理.
C++ new用法的正确方法应该如何操作?
在这篇文章中我们将会根据其两种不同的含义分别介绍一下它的影音方法,
希望能给大家带来一些帮助。
C++ <http://developer.51ct ...
1,接受者作为命令实现类的一个成员(组合的思想),command类的execute方法,执行接受者要执行的动作.
2,一个简单的实例:
#include <iostream>
#include <cassert>
#include <memory>
using namespace std;
/*********************Command对象基类************************/
class Command
{
public:
virtual ~Command() = 0;
virtual voi ...
1,简单工厂模式:
实例代码:
#include <iostream>
#include <list>
#include <cassert>
#include <sstream>
#include <memory>
using namespace std;
/************************产品基类******************************/
class Pizza
{
protected:
Pizza() {}
public:
virtual ~Pizz ...
1,核心:装饰者和被装饰者来自共同的基类.
被装饰者由装饰者一层层地进行包裹.
2,实例代码:
#include <iostream>
#include <list>
#include <cassert>
using namespace std;
class Beverage //装饰者和被装饰者共同的基类
{
protected:
Beverage() : _description( "Unknown Beverage" )
{}
public:
virtual ~Beverage() ...
1,核心:
很多个观察者关注一个object.
因此这些个observer注册同一个object.
object的变化调用NotifyAll,引起每个observer调用自己的update.
2,先给出一个实例:
#include <iostream>
#include <list>
#include <cassert>
using namespace std;
class Observer;
class Subject
{
protected:
virtual ~Subject() = 0;
public:
// ...
学习的地方:
http://en.wikipedia.org/wiki/Talk:Fibonacci_heap
http://jicheng.ycool.com/post.2380567.html
1,先贴个代码:
#include <iostream>
using namespace std;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct element
{
int key;
};
struct fiboheap
...
1,Sunday算法是Daniel M.Sunday于1990年提出的一种比BM算法搜索速度更快的算法。
2,Sunday算法其实思想跟BM算法很相似,只不过Sunday算法是从前往后匹配,在匹配失败时关注的是文本串中参加匹配的最末位字符的下一位字符。如果该字符没有在匹配串中出现则直接跳过,即移动步长= 匹配串长度+ 1;否则,同BM算法一样其移动步长=匹配串中最右端的该字符到末尾的距离+1。
3,举例:
匹配串:abcbczdxzc
模式串:zbcac
这里我们看到z-a没有对上,我们就看匹配串中的z在模式串的位置,然后对齐。
匹配串:abcbczdxzc
模式串: z ...
1,BM算法是Boyer-Moore算法的简称,由Boyer 和Moore提出.
2,BM算法也是一种快速串匹配算法,BM算法与KMP算法的主要区别是匹配操作的方向不同。虽然BM算法仅把匹配操作的字符比较顺序改为从右向左,但匹配发生失败时,模式T右移的计算方法却发生了较大的变化.
3,滑动距离函数:
为方便讨论,BM算法的关键是,对给定的模式T="t0t1…tm"定义一个从字符到正整数的映射:
dist :c->{1,2,…,m+1}
函数dist称为滑动距离函数,它给出了正文中可能出现的任意字符在模式中的位置。函数dist定义如下:
dist(c) = m-j j为c在模式中的下标,以后 ...
默认情况下使用Vim编程,在修改文件后系统会自动生成一个带~的备份文件,看上去又乱又讨人厌。
怎么让Vim不自动生成这些备份文件呢?
1. 找到你的Vim安装目录,如果是在Windows下默认路径安装的,应该是在C:\Program Files\Vim\
2. 找到这个文件:vimrc_example.vim ,我的这个文件是在vim70文件夹下,具体还要看你安装的是什么版本的。
3. 找到后打开,找到这一句:if has("vms")
把这个判断里的if部分保留,else部分注释掉。
(Vim的注释符是")
即修改后应该是这样的:
if has("vms ...