自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (3)
  • 收藏
  • 关注

原创 求字符串的所有组合

void combination(char *s, string res, int len){ if (len == 0) { cout << res << endl; return; } if (*s == '\0') return; combination(s+1, res, len); res

2012-10-07 14:18:13 337

原创 二叉树非递归前序和中序遍历

一前序遍历:设置一个栈,从根开始顺着左子树依次访问并入栈,当左子树为空时,说明当前栈顶节点的左子树访问完,应该访问栈顶节点的右子树,将其入栈,然后重复刚才的过程。中序遍历设置一个栈,从根开始顺着左子树依次入栈,当左子树为空时,说明当前栈顶节点的左子树访问完,此时将栈顶出栈并访问,接着访问栈顶节点的右子树,将其入栈,然后重复刚才的过程。二 struct BTNod

2012-09-30 20:50:31 662

原创 二叉树后序遍历非递归实现

一对于一个节点p,沿着左子树一直向下,直到没有左孩子,在此过程中标记节点为第一次访问,现在栈顶第一次访问该节点,由于右子树没有访问完,按照刚才的方式访问右子树。访问完右子树后,第二次访问该节点,现在将其出栈并访问。二设置一个节点栈,一个标记栈,两个栈是同步的,标记栈标记第几次访问。三struct BTNode{ int d; struct BTNo

2012-09-30 16:58:10 637

原创 在循环数组中查找某个数K

一 循环数组例如 4 5 6 7 8 9 1 2 3, 循环有序二 类似于二分查找的思想,首先定位到中间,然后判断左右两个区间,哪个是有序的(一定有一个是有序的),然后判断k是不是在这个有序区间来判断下一步在哪个区间去查找#include #include //在循环数组中寻找kint main(){ int a[9] = {1,2,3,4,5,6,9,90

2012-09-30 15:54:49 1839

原创 获得文件大小

int fseek(FILE *stream, long offset, int whence);  long ftell(FILE *stream);先将文件按定位到末尾,然后ftell函数返回当前读写位置#include int main(int argc, char** argv){ if (argc < 2) { pri

2012-09-13 15:40:56 342

原创 ubuntu eclipse代码提示黑色背景的解决办法

#/bin/sh# Tooltip fix# A script to fix themes files in Ubuntu 11.10# to have readable tooltips in applications such# as eclipse.# The script edits the gtk.css, settings.ini and gtkrc files# Au

2012-05-21 14:43:32 1428

原创 堆排序

一 简介堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆性质:即子结点的键值或索引总是小于(或者大于)它的父节点。二 备忘#include int n;int heap_len;void make_heap(int* A, int i){ int min = i; int l = 2*i; int r =

2012-05-10 12:51:28 285

原创 并查集

一 概念并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。操作:初始化  把每个点所在集合初始化为其自身。  通常来说,这个步骤在每次使用该数据结构时只需要执行一次,无论何种实现方式,时间复杂度均为O(N)。查找所属集合  查找元素所在的集合,即根节点。合并

2012-05-06 21:21:06 353

原创 linux命令tail的实现

Linux下的tail命令实现查看文件后几行的功能,前一段面试时被考到,自己动手实现了一下。代码如下:#include #include int buffersize = 20;int main(int argc, char* argv[]){ if (argc < 2) printf("arguments to short!\n"); ch

2012-05-03 20:11:43 6216 4

原创 快速排序

void swap(int *x, int *y){ int tmp = *x; *x = *y; *y = tmp;}int partition(int a[], int p, int r){ int i = p-1; int j; for (j = p; j < r; ++j) { if ( a[j] < a[r]) { ++i; swap(a+i,

2012-04-18 19:29:56 379

原创 全排列算法

一 全排列生成比如“123”的所有排列 123 213 231 321 312 132。二 代码#include #include void swap(char *a, char *b){ char tmp = *a; *a = *b; *b = tmp;}void per(char* s, char* pos){

2012-04-16 10:01:48 311

原创 凸多边形三角划分

1 动态规划转移方程设 F[I,J](IF[I,J]=Min{F[I,K]+F[K,J]+S[I]*S[J]*S[K]}     (I目标状态为:F[1,N]2 代码#include #define N 52#define MAX 999999999int c[N][N];int s[N];int main(){ int i,j,k; int n;

2012-03-25 22:00:34 858

原创 linux的I/O多路复用

一 概念二 select #include #include #include #include int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval

2012-03-12 19:05:57 743

原创 最长递增子序列(hdoj1025)

一 问题描述最长递增子序列,也称最长上升/不下降子序列。设L=是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=,其中k1求最大的m值。比如 ,的最长上升子序列为,m为4;二 算法描述把待求序列L=与求最长公共子序列,时间复杂度为O(n2)动态规划,设dp[i]为以a[i]为结尾的最长公共子序列长度,则,dp[i] = max{dp[j]} + 1,

2012-03-05 15:33:08 656

原创 HDOJ1010(搜索+剪枝)

一 题目描述n m t4 4 5S.X...X...XD....在n×m的矩阵中,从‘S’走到‘D’位置,问你用t步能不能走到?典型的搜索题目二 思路从起点‘S’开始,遇到‘.’就递归搜索,直到到达’D‘,如果恰好走了t步那么递归结束。剪枝:搜索过程中,如果已经走了大于t步的话,退出起点和终点位置abs(ex-sx) + abs(ey-sy)决定

2012-03-02 16:56:55 628

原创 Trie树(HDOJ1075)

一 描述Trie,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。二     本题是要根据词典,来翻译句子,数据结构struct trie_node{ char trans[11];//翻译

2012-02-29 22:40:47 501

原创 最近点对(HDOJ1007)

一 问题描述假设平面内有N个点,每个点以坐标(x, y)给出,N的数据量很大,如何求出其中最近的两个点。二 算法一种方法是暴力,通过枚举任意两个点,找到最小的,一共要比较C(n, 2)次,故实践复杂度为O(n2)。另外一种解法用到了分治的思想,步骤为:把所有点按x坐标的大小排序,从中间一份为二。最近点对有三种情况,都在左边,都在右边,左右都有递归求出都在左边和都在右

2012-02-26 19:59:58 2520

原创 最长公共子序列(hdoj1159)

一 问题描述最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。比如,序列{a , b , c , b , d , a , b} 和 {b , d , c , a , b , a}

2012-02-24 17:11:54 475

原创 最大子矩阵(poj1050)

一 描述矩阵的最大子矩阵和。比如:0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2  拥有最大和的子矩阵为:9 2-4 1-1 8其和为15。二 代码#include #include using namespace std;int r[1002][1002];int main(){ freopen("in.txt

2012-02-23 19:53:04 326

原创 循环节(hdoj1005)

一 问题描述A number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.Given A, B, and n, you are to calculate the value of f(n).二 解法显然,由于取余的关系,连续的两个数f[

2012-02-22 22:27:23 814

原创 最大子串和(HDOJ1003)

最大子串和是一道经典的动态规划问题。具体问题是指,在一串连续的数字中,找到一个最大的字串,它们的和在所有的子串中最大,比如序列,6,-1,5,4,-7,它的连续最大段子串和就是:6 + (-1) + 5 + 4 = 14. 假设a[]为原始数据串。定义dp[i]为:以a[i]为结尾的最大子串和。那么显然:递推式为:dp[i] = max{dp[i-1] + a[i] ,  a[i]}

2012-02-22 09:58:20 528

转载 布隆过滤

import java.util.BitSet;public class BloomFilter { private static int defaultSize = 2 << 24; private static int basic = defaultSize - 1; private static BitSet bits; private static BloomFilter bf

2011-10-29 12:48:30 407

原创 hadoop学习笔记

这段时间简单的学习了一下hadoop平台,初步有了一个认识,但是时间看的不多,觉得认识还很浅显,主要看了下MapReduce和HDFS。在这里总结一下。一、概要认识hadoop是有个用于开发并行计算和分布式存储系统的平台。可以用普通的pc机来组成集群,用来部署分布式应用。

2011-09-14 10:04:17 420

cygwin安装包cygwin

最新版编译器 cygwin 最新版编译器 cygwin

2008-12-27

二分图完美匹配(匈牙利算法)

/*******************二分图完美匹配(匈牙利算法):************************** c语言实现 ,注释~~

2008-12-26

poj 3672源码

poj 3672 仅仅是源代码 更多将会继续上传

2008-12-26

空空如也

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

TA关注的人

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