- 博客(19)
- 资源 (2)
- 收藏
- 关注
转载 rsync 的核心算法
转自:http://coolshell.cn/articles/7425.htmlrsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并适当利用查找文件中的不同块以减少数据传输。rsync中一项与其他大部分类似程序或协定中所未见的重要特性是镜像是只对有变更的部分进行传送。rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝。r
2013-11-27 16:59:47
332
原创 求字符串的最长回文子串
/*字符串的最长回文子串有两种方式 (1)一种是给每一个字符的前后均加上一个#,这样字符串的最长回文就都是奇数,省去了奇数偶数的麻烦,然后对其中的每个字符用一个数组保存其最长回文的长度(保存一边的长度即可),用一变量max表示数组中能到达右边的最大距离,用另一变量id保存其位置,求P【i】有两种情况P【i】 = MIN(p[2*id-i], max-i)(2) 可以直接使用两层循环遍历之
2013-10-02 23:28:20
658
转载 kmp算法详解
KMP字符串模式匹配详解来自优快云 A_B_C_ABC 网友KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一. 简单匹配算法先来看一个简单匹配算法的函数:int Index_BF ( char S [ ], char T [ ], int po
2013-10-02 22:02:19
429
原创 字符串全排列的递归和非递归实现
/* 全排列实现的两种方式(1) 递归实现可由每个数与第一个数交换实现之,交换之后对后面的数也进行全排列,这是一个递归的过程如 1,2,3 的全排列过程如下1,2,3 1,3,2 第一位与第一位交换,然后对2, 3 求全排列2,1,3 2,3,1 第二位与第一位交换,然后对1,3 求全排列3,1,2 3,2,1 第三位与第一位交换,然后对1,2 求全排列 这种情况下可能出现重复的情形
2013-10-01 23:11:27
1119
原创 CVT在线测试题
/*=============求3000 以内包含5和9的所有的数字和 如(59,95等)2013-09-10 14:33 by Mei===============*/#include using namespace std;bool num(int n){ bool flag5 = false, flag9=false; while((n%10 == 5 || n%10 =
2013-09-10 17:03:26
852
原创 编程之美2.2 求N!中最低位1 的位置
/*=============两种方法求N!的二进制表示中最低位1的位置2013-09-10 14:33 by Mei===============*/#include using namespace std;int num(int n){ int a = 0; while(n%2==0) { a++; n = n/2; } return a;}//第一种方
2013-09-10 14:35:28
667
原创 C++ 类的继承
# include using namespace std;class Base{public: Base(int x=0) :a(1) { } virtual void show() { cout<<"Base cout"<<endl; }private: int a;};class Derive : public Base{public: Deri
2013-09-09 21:45:16
326
原创 String 类的拷贝构造函数, 赋值操作符重载, 算数操作符重载
一般来讲 赋值,下标,调用 和成员放文件头必须定义为成员函数,否则在编译时会出现错误复合复制操作符通常也应该定义为类的成员(当然不这么做不会出现编译错误)改变对象状态的自增 自减 解引用 应该定义为类成员,对象操作符 (如 算数运算符(返回一个对象,一般不返回引用,与内置操作符的返回类型想匹配),相等操作符,关系操作符,位操作符 最好定义为普通非成员函数)下面为String类的拷贝构造函数
2013-09-02 14:11:49
633
原创 strtok 源码实现
#include #include #include char *Mystrtok(char *str, const char *del){ // str 可以为NULL assert(del != NULL); static char *last ; if(str == NULL) str = last; str += strspn(str, del); if(*s
2013-08-29 20:36:54
592
转载 内存泄露的相关分析
摘自http://www.quanxue.cn/JC_CLanguage/CLang/Clang13.htmlC语言程序员要严防内存泄漏,这个“内存泄漏”就是由动态内存分配引起的。指针是C语言和其它语言的最大区别,也是很多人不能跨入C语言的一道门槛。既然指针是这么一个“危险”的坏东西,干吗不取消它呢?其实指针本身并没有好坏,它只是一种操作地址的方法,学会了便可以发挥其它语言难以匹敌
2013-08-22 18:50:31
583
原创 腾讯面试题 替换字符串
/*==================腾讯面试题替换A字符串中所有出现的字串a把其替换为b2012-08-21 By Mei====================*/# include # include # include void exchange(char *src, const char *b, int len){ if(len>=0) {
2013-08-22 14:58:45
525
原创 字符串处理问题
/*==================字符串的处理函数2013-08-21 By Mei====================*/#include #include #include // dest 前面count个字符设置为cvoid *memset(void *dest, int c, int count){ assert(dest != NULL);
2013-08-21 22:06:30
544
原创 红黑树的实现代码
#include#include#includetypedef struct node{ int data; struct node *p; struct node *left; struct node *right; char color;}node,*linktree;void Create_Tree();void Insert(linktree T,int i);
2013-08-19 22:01:40
404
原创 动态规划解决0-1背包问题
/*============0-1 背包问题,用动态规划求解2013-08-08============*/#include #include using namespace std;#define max(x, y) ((x)>(y)?(x):(y))const int MIN=0x80000000;const int N = 3;const int V = 10;i
2013-08-19 17:13:21
465
原创 回溯法实现八皇后问题
/*======================用回溯法求解八皇后问题2013-08-10 By Mei======================*/#include #define N 8#define abs(x) ((x)>=0)?(x):(-(x))using namespace std;int a[N+1];void output(){ static i
2013-08-19 17:11:55
567
原创 由树的前序遍历,中序遍历建立一颗二叉树,并以后续遍历的方式输出其元素
/*====================由先序遍历,中序遍历建立一颗二叉树由中序遍历,后序遍历建立一颗二叉树由先序遍历,中序遍历求后序遍历的结果由中序遍历,后序遍历求中序遍历的结果建立一颗二叉排序树2013-08-15 By Mei======================*/#include #include #include using namespace st
2013-08-19 17:09:43
915
原创 二叉树遍历的各种方式
/*======================================树的所有操作初始化二叉树, 先序,中序,后序建立二叉树先序,中序,后序递归, 非递归 遍历二叉树层次遍历二叉树等2013-08-12 By Mei=======================================*/#include #include #include #include
2013-08-19 17:07:21
427
原创 排序合集
/*======================================冒泡排序,快速排序直接插入排序,折半插入排序,希尔排序简单选择排序,堆排序归并排序2013-08-10 By Mei=======================================*/#include #define True 1#define False 0#define min(
2013-08-19 17:04:51
402
原创 kmp 算法实现
/*=================kmp 算法实现2013-08-19 By Mei=================*/#include #include using namespace std;int *find_next(char *b){ int len = strlen(b); int *next = new int
2013-08-19 16:54:54
583
数据结构代码实现
2013-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人