摘要: 参考 编程之美,搜狗笔试题 (留白待完成) 阅读全文
posted @ 2012-04-10 13:53 foreverlearn 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 待续:待研究,比较最长子序列和最长子串,研究后缀数组和后缀树LCS实现代码:#include <iostream> using namespace std; int c[8][7],b[8][7]; void lcs_length(char *X,char *Y) { int m = strlen(X); int n = strlen(Y); for ( int i = 0; i <=m; i++)c[i][0] = 0; for(int j = 0; j <=n; j++)c[0][j] = 0; for(int i = 1; i <=m; i++) for ( 阅读全文
posted @ 2012-04-10 13:35 foreverlearn 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 待完成资料:http://s.sousb.com/2011/04/15/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E-%E6%9C%80%E7%9F%AD%E6%91%98%E8%A6%81/资料:alibaba面试题 阅读全文
posted @ 2012-04-10 13:31 foreverlearn 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 算法导论之堆排序1:保持堆的性质MAX-HEAPIFY(A, i) 1 l ← LEFT(i) 2 r ← RIGHT(i) 3 if l ≤ heap-size[A] and A[l] > A[i] 4 then largest ← l 5 else largest ← i 6 if r ≤ heap-size[A] and A[r] > A[largest] 7 then largest ← r 8 if largest ≠ i 9 then exchange A[i] ↔ A[largest] 10 MAX-HEAPIFY(A, ... 阅读全文
posted @ 2012-04-09 14:23 foreverlearn 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cppblog.com/xczhang/archive/2008/01/09/40829.html宏定义可以提高效率,但是宏不是函数。预编译通过代码复制的方式代替函数调用,省去了诸如函数压栈等系统过程,从而提高了效率。但是由于宏定义仅仅是代码替换,所以引起很多问题。#define MAX(a,b) (a) > (b) ? ( a) : (b)result=MAX(A,B)+2 编译器对其解释为 (a) > (b) ? (a) : (b)+2 .导致该语句执行与预期不符。宏定义的另一个缺点就是无法访问类的私有成员。而内联函数通过把代码直接复制进调用函数体内 阅读全文
posted @ 2012-04-06 17:14 foreverlearn 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 一.概念性问答题第一题:线程的基本概念、线程的基本状态及状态之间的关系?进程概念 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。 在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了变化:它只是资源分配的单位,而不再是调度运行的单位。在微内核系统中,真正调度运行的基本单位是线程。因此,实现并发功能的单位是线程。线.. 阅读全文
posted @ 2012-04-06 13:51 foreverlearn 阅读(214) 评论(0) 推荐(0) 编辑
摘要: apue笔记apue代码编译http://blog.163.com/casillas_yeah/blog/static/1041019820103505716852/fork函数#include<unistd.h>pid_t fork(void)返回值:子进程中返回0,父进程中返回子进程ID,出错返回1子进程获得父进程的数据空间,堆,和栈的副本,注意这是子进程所拥有的副本,父子进程并不共享存储空间,只共享正文段#include<unistd.h> #include<sys/types.h> char buf[] = "a write to stdo 阅读全文
posted @ 2012-04-03 10:37 foreverlearn 阅读(219) 评论(0) 推荐(0) 编辑
摘要: #define BITSPERWORD 32#define SHIFT 5#define MASK 0x1f#define N 1000000int a[1+N/BITSPERWORD];void set_i(int i){a[i>>SHIFT] |= (1<<(i&MASK)); //a[i>>SHIFT] 每1个int32位为一个桶,a[i>>SHIFT]相当于找那个32位, //1<<i(i&MASK),32位中中的那位为1}int test_i(int i){return a[i>>SHIFT] & 阅读全文
posted @ 2012-03-31 22:47 foreverlearn 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 问题描述:问题:一个最多包含n个正整数的文件,每个数都小于n,n = 100 00000。文件中的正整数没有重复的,请按升序排列这些整数。可用内存空间只有1MB左右,运行时间在10秒左右。选择方案:1:归并排序,32为整数,1M的内存空间,每次可以读入约250 000(25万)个数(注意估计方法,1M 10的6次方,1百万字节,1G,10的9次方,10亿字节)那就需要40次读入,第一次遍历文件,对0-249 999的树进行排序,第二次对250 000到499 999之间的数排序,瓶颈在于需要40次读入文件2:利用位图和位向量解决,该排序的特征为:数据没有重复,数据限制在较小的范围内,除了单一整 阅读全文
posted @ 2012-03-31 16:11 foreverlearn 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 二叉树的操作参考:[1]http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.html [2]http://www.bccn.net/article/kfyy/sjjg/200706/4585.html#include"stdio.h" #include<iostream> #include<stack> using namespace std; //数据结构 typedef struct node { int value; struct node *lchild; struct 阅读全文
posted @ 2012-03-29 21:15 foreverlearn 阅读(235) 评论(0) 推荐(0) 编辑