- 博客(14)
- 收藏
- 关注
原创 全排列和全组合的问题
#include void swap(int *l, int *r){ int t = *l; *l = *r; *r = t;}//全排列void gen(int *a, int size, int len){ int i,j; if (size == 0){ for (i = 0; i < len; i++){ printf("%d ", (a-len)[i])
2011-10-28 16:04:57
430
转载 Linux开机启动过程
开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在
2011-10-20 11:37:08
459
转载 A*寻路 曼哈顿启发式算法
作者: Patrick Lester译者:Panic 2005年3月18日译者序:很久以前就知道了A*算法,但是从未认真读过相关的文章,也没有看过代码,只是脑子里有个模糊的概念。这次决定从头开始,研究一下这个被人推崇备至的简单方法,作为学习人工智能的开始。这篇文章非常
2011-10-17 00:40:04
1728
原创 字符串翻转的问题
输入一个英文句子,要求翻转句子中单词的顺序,但单词内字符顺序不变,句子中单词以空格符隔开例如输入“welcome to china”,则输出“china to welcome”代码如下:#define reverse(p1, p2) while(p1<=p2) { / char ch; / ch=*p1;
2011-10-14 13:15:18
538
原创 字符串处理的一些题
1 写一个函数removesubstr(char *s, char *t),功能是从字符串s中找子串t,并将t从s中删除。代码:int removesubstr(char *s, char *t){ char *dst, *sp, *tp; int find = 0
2011-10-13 18:29:52
571
转载 网路爬虫--url索引
url索引的作用是判断一个url是否被抓取过,采用的算法主要是MD5数字签名。假设一共要抓取的url不超过1亿条,用一个二进制的位表示一个url是否被抓取过,则至少需要1亿个位,我们管每一个位叫一个“槽”。考虑到MD5的算法是可能出现冲突(即不同的url算出来的MD5可能相同,这种概率很小),槽越少,冲突越明显,所以槽越多越好。但另一方面,还要考虑到占用内存的大小,因为在抓取的过程中,为了保证
2011-10-11 19:30:34
855
转载 二路归并排序(链式存储)
设单链表结构为 struct ListNode {int data ;ListNode * link ;};下面的程序是以单链表为存储结构, 实现二路归并排序的算法, 要求链表不另外占用存储空间, 排序过程中不移动结点中的元素, 只改各链结点中的指针, 排序后r仍指示结果链表的第一个结点.在初始状态下, 所有待排序记录链接在一个以r为头指针的单链表中.例如,在算法实现时,利用了
2011-10-10 20:41:50
2974
转载 TIME_WAIT的一些知识
Socket中的TIME_WAIT状态在高并发短连接的server端,当server处理完client的请求后立刻closesocket此时会出现time_wait状态然后如果client再并发2000个连接,此时部分连接就连接不上了,用linger强制关闭可以解决此问题,但
2011-10-10 19:36:38
465
转载 两个有序的数组中找第N个数
问题描述:Give a divide and conquer algorithm for the following problem:you are given two sorted lists of size m and n, and are allowedunit time access to the ith element of each list. Give an O(lg m
2011-10-05 18:38:42
1152
转载 求二进制数中1的个数
解法一:除2看余数int Count(BYTE v){ int num = 0; while(v) { if(v % 2 == 1) { num++;
2011-09-30 19:01:24
641
原创 C++里的计数器class
#include #include #include #include class AutoTimer{ public: AutoTimer(const char *msg){ _msg = msg; gettimeofday(&begin, NULL)
2011-09-29 19:32:59
907
转载 多模式匹配--AC自动机算法
首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。AC自动机算法分为3步:构造一棵Trie树,构造失败指针和模式匹配过程。如果
2011-09-29 19:17:58
666
原创 二叉树的深度优先和广度优先遍历
图的深度优先搜索法是树的先根遍历的推广,它的基本思想是:从图G的某个顶点v0出发,访问v0,然后选择一个与v0相邻且没被访问过的顶点vi访问,再从vi出发选择一个与vi相邻且未被访问的顶点vj进行访问,依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则退回到已被访问的顶
2011-09-29 18:54:51
807
转载 编程之美:分层遍历二叉树
问题定义给定一棵二叉树,要求按分层遍历该二叉树,即从上到下按层次访问该二叉树(每一层将单独输出一行),每一层要求访问的顺序为从左到右,并将节点依次编号。下面是一个例子:输出:12 34 5 67 8节点的定义:1struct Node { 2Node *pLeft;
2011-09-29 17:53:41
515
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人