自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(462)
  • 资源 (9)
  • 收藏
  • 关注

原创 算法导论 10.4-3 O(n) 二叉树 非递归遍历

一、题目 二、伪代码三、代码

2014-09-02 21:45:41 2745 5

原创 算法导论 10.4-2 O(n)时间 递归遍历二叉树

一、题目请写出一个O(n)时间的递归过程,在给定的n个

2014-09-02 20:54:11 2877 1

原创 读《代码整洁之道》(更新中)

最近响应公司的号召,学习clean code。以

2014-08-21 20:03:12 1488

原创 测试文件系统

一、本文主要内容 1.制作一个可执行文件,用于测试 (1)在一个新的文件loader.S中写一段测试代码,及相应的.ld文件 (2)修改makefile,使loader.S编译成loader.bin (3)把loader.bin拷贝到boot.img上 2.加载测试文件 对上一篇文件的代码稍做修改,使得能搜索并加载指定文件《loader.bin》到内存指定位置 3.控制权转移到内存指

2014-06-30 20:20:24 1346

原创 使用文件系统

注:本文仍然主要来自《writeos-1.0-2-weekly》一、加载指定扇区支指定空间《运行自己的操作系统(linux版) -0.01》提到读入启动扇区,那是由硬盘自动完成的。若要读入其它扇区到一个特定的内存空间,就要自己写代码完成,使用底层BIOS系统提供的BIOS 13h号中断,如图:

2014-06-26 22:57:29 1293

原创 第一次跳槽

实习5个月,入职14个月,在第一个公司仅待了不到2年就离开

2014-06-20 16:36:30 1812 6

原创 引入文件系统

说明:本文中的内容,主要来自于WB. YANG的一本书,书名《writeos-1.0-2-weekly》,建议看原文,提供链接http://download.csdn.net/detail/mishifangxiangdefeng/5869801

2014-06-14 20:52:05 1991

原创 迷失方向的风

前几日,主管指着一个简历说:“这个女孩子挺厉害的,给她一道题,她做出来了,再给一题,又做出来了,又给了几题,每道题都做出来了。因为我不招女的,所以就让她回去了,其实今天面试下来,她的表现是最好的”。当时听了心里很郁闷。刚好不久前主管跟我谈加薪,我的是最少的,简直是少得可怜,甚至不到平均水平的一半。让我觉得这是耻辱。只是想:“就算是程序媴,也要在IT界争得一片天”于是,一气之下,在51job

2014-03-18 21:36:47 1991 6

原创 Valgrind使用方法及举例(代码和效果以后补充)

一、Valgrind是什么Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核──一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务──调试,分析,或测试等。Valgrind可以检测内存泄漏和内存违例,还可以分析cache的使用等不管是使用哪个工具,valgrind在开始之前总会先取得对你的程序的控制权,从可执行关联库里读取调试信息。然后

2013-12-29 19:39:39 3360

原创 C++Primer笔记

(P?)头文件中应该只定义确实需要的东西。(P37)反斜线符号必须是该行的尾字符――不允许其后面有注释或空格。同样,后继行行首的任何空格和制表符都是字符串字面值的一部分,正因如此,长字符串字面值的后继行才不会有正常的缩进。(P42)直接初始化int ival(1024);、复制初始化int ival = 1024;与赋值ival = 1024;。初始化不是赋值。初始化是指创建变量并给它赋值

2013-11-24 19:03:08 3452 5

原创 linux上内存泄漏查看方法之——让系统调用自己定义的new

内存泄漏是一种非常讨厌的问题,严重却又难查。在windows平台上开发,有许多工具可以帮助查找内存泄漏。在linux平台上却没这么简单。一种查内存泄漏的方法就是通过重载申请和释放内存的操作。重载函数中除了完成原有的申请/释放操作,还要对该操作作记录。通过标记出所有申请内存和释放内存的地方并做统计的方法来查找内存漏泄。         虽然重载内存操作函数可以用于查找内存泄漏,但对于一个已经完成

2013-11-19 22:24:03 8332 1

原创 1.最简单的操作系统(linux版)(一)运行效果

大部分内容来自WB. YANG的一本书,书名忘记了 1.linux所需要的安装的工具vim, virtualbox,g++ 2.编写自己的操作系统,懒得在linux上装个输入法,只好用蹩脚的英文写的注释,阅读时请自带避雷针系统引导程序:boot.S 1 .code16 #使用16位模式汇编 2 .text #代码段开始 3

2013-05-26 23:52:09 3683 16

原创 第26章 最大流(正在修改)

一、综述1.定义定义1:流网络定义2:残留容量定义3:增广路径已知一个网络流G=(V,E)和流f,增广路径p为残留网络G|f中从s到t的一条简单路径能够沿一条增广路径p的每条边传输的网络流的最大量为p的残留容量,由下式定义:c|f(p) = min{c|f(u,v) : (u,v)在p上}定义4:割、净流、容量、最小割净流和容量的区别: 穿过(S

2013-05-18 22:26:48 7135 4

转载 P09: 背包问题问法的变化

以上涉及的各种背包问题都是要求在背包容量(费用)的限制下求可以取到的最大价值,但背包问题还有很多种灵活的问法,在这里值得提一下。但是我认为,只要深入理解了求背包问题最大价值的方法,即使问法变化了,也是不难想出算法的。 例如,求解最多可以放多少件物品或者最多可以装满多少背包的空间。这都可以根据具体问题利用前面的方程求出所有状态的值(f数组)之后得到。 还有,如果要求的是“总价值最小”

2013-04-06 09:47:24 1572

转载 P08: 泛化物品

定义 考虑这样一种物品,它并没有固定的费用和价值,而是它的价值随着你分配给它的费用而变化。这就是泛化物品的概念。 更严格的定义之。在背包容量为V的背包问题中,泛化物品是一个定义域为0..V中的整数的函数h,当分配给它的费用为v时,能得到的价值就是h(v)。 这个定义有一点点抽象,另一种理解是一个泛化物品就是一个数组h[0..V],给它费用v,可得到价值h[V]。 一

2013-04-06 09:46:22 1518

转载 P07: 有依赖的背包问题

简化的问题 这种背包问题的物品间存在某种“依赖”的关系。也就是说,i依赖于j,表示若选物品i,则必须选物品j。为了简化起见,我们先设没有某个物品既依赖于别的物品,又被别的物品所依赖;另外,没有某件物品同时依赖多件物品。 算法 这个问题由NOIP2006金明的预算方案一题扩展而来。遵从该题的提法,将不依赖于别的物品的物品称为“主件”,依赖于某主件的物品称为“附件”。由这个

2013-04-06 09:44:01 1685

转载 P06: 分组的背包问题

问题 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 算法 这个问题变成了每组物品有若干种策略:是选择本组的某一件,还是一件都不选。也就是说设f[k][v]表示前k组物品花费费用v能取得的最大权值,则有f[k

2013-04-06 09:41:34 1587

原创 算法导论 22.5-5 O(V+E)求有向图的分支图

一、题目给出一个O(V+E)时间的算法,以计算一个有向图G=(V,E)的分支图。注意在算法产生的分支图中,两个顶点之间至多只能有一条边。二、思考没有找到关于有向图的分支图的定义,在网上找了一种解法,根据这个解法的结果推测,有向图的分支图应该是书P338,22-9(c)中顶点合并后的结果。过程如下:STEP1:求强联通分量,结果用scc[u]表示,即顶点u属于第s

2013-01-03 19:41:48 7532 7

原创 算法导论 22.2-8 无向图遍历

一、题目设G=(V,E)是一个连通的无向图。请给出一个O(V+E)时间的算法,以计算图G中的一条路径,对于E中的每一条 边,该路径恰好在每一个方向上遍历一次。如果你身处一个迷宫之中,说明如何才能找到出路。二、思考直觉就是说DFS,这一节讲的是BFS,不知道怎么用BFS处理三、代码1.Link_Graph.h#include #include using

2012-12-23 21:52:50 4338 1

原创 算法导论 22.6 职业摔跤手

一、题目二、使用BFS解题1.Link_Graph.h#include #include using namespace std;#define N 100#define WHITE 0#define GRAY 1#define BLACK 2queue Q;class Mat_Graph{public: int n; int color[

2012-12-23 16:44:03 3542 2

原创 09网易校园招聘笔试题A卷(研发类笔试题)

第一部分(必做):计算机科学基础1.(单选)软件设计中模块划分应该遵循的准则是:A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合答:B内聚指模块内部各成分之间相关程度的度量 强度性低到高分成 偶然内聚 :关系松散没什么联系 逻辑内聚:几个逻辑上相关的功能被放在同一模块中,如一个模块读取各种不同类型外设的输入,逻辑内聚的模块各成分在功能上并无关系。时间内

2012-12-01 16:16:10 8006 4

原创 算法导论 第21章 21-2 深度确定

一、题目 二、代码/* UnionFindSet.h 并查集,非递归方法,含路径压缩,数组从0开始*/ #include using namespace std; #define MAXN 30005 class UFS{public: int n; int p[MAXN+1];//集合根结点 int ran

2012-11-27 20:14:50 2779

原创 算法导论 19-2 采用二项堆的最小生成树算法

一、题目二、分析1.算法先把每个顶点作为一个集合称为V,初始时每个Vi只有一个顶点i,随着算法的进行,会将一个集合合并,集合数量越来越少,而集合中的点越来越多。当只剩下一个集合时,算法结束。每个顶点集合对应一个边的集合,称为E,所有以顶点i为顶点的边都放入Ei中。将Vj合并到Vi的同时,也会把Ej合并到Ei中。任意选择一个顶点集合Vi,以及对应的Ei,从Ei中选

2012-11-14 21:48:30 4578 1

原创 百度面试经历

10月21日-一面1.HR:自我介绍一下2.HR:介绍一下你的项目HR:讲一下你的这个项目中的关键技术HR:你的这些算法是OPENCV中自带的函数还是自己写的?(HR似乎对我的项目没什么兴趣)3.HR:写一个程序,使单词反序,如“I love ACM”转为"ACM love I".可以认为字符串中只有字母和空格,且两个单词间只

2012-11-01 13:09:33 3458 6

原创 大华股份2013届校园招聘软件算法类试题D卷

一、填空题(共17题,每题3分,总共51分)1.设有int a = 5, *b, **c,执行语句c = &b, b = &a后,**c的值为________答:52.以下程序是否有误,如果无误,请写出执行的次数________x = -1;do{ x = x * x;}while(!x);答:13.设有如下定义:struct sk{ int

2012-10-28 14:38:53 4508 2

原创 浙江大华2012届校园招聘研发类试卷B

一、程序编写题1.函数checkstr判断一个字符串是不是对称的,如:“abccba”是对称的,"abccbaa"则不是对称的。函数声明如下,其中msg为输入的字符串,对称返回0,不对称返回-1,请实现该函数。int checkstr(const char *msg);答:int checkstr(const char *msg){ int i = 0, len; whi

2012-10-26 21:14:14 3658

原创 数组与指向数组的指针总结

一、一维数组1.代码 int a[10], i; for(i = 0; i < 10; i++) a[i] = i * 10; int *pa = a; cout<<pa<<endl; cout<<*pa<<endl; cout<<pa+1<<endl; cout<<*pa+1<<endl; cout2.输出结果3.解释pa:a[

2012-10-22 21:52:14 1829 2

原创 构造函数、复制构造函数、析构函数混合使用总结

一、用法构造函数的用法:类的声明、定义与初始化复制构造函数的用法:复制构造函数总结2.一些混合使用的例子1.关于强制类型转换class A{ int x;public: A(int i):x(i){cout<<"construct "<<this<<endl;} A(const A& a){x = a.x;cout<<"copy "<<this<<

2012-09-27 16:14:10 1669

原创 .字符数组、字符串与string类总结

1.字符数组、字符串与string类的区别例1:int main(){ string s; cin>>s;//输入:dog if(s == "dog") cout<<"狗"<<endl; char ch[10]; cin>>ch;//输入:cat if(ch == "cat") cout<<"猫"<<endl; return 0;}输出:dog   //

2012-09-27 15:43:37 2139

转载 一些海量数据的题目

不知道出处1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(记为)中。这样每个小文件的大约为

2012-09-25 22:11:36 1497

转载 2012年百度实习生招聘-java开发

简答题1、给一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词b,那么b是a的兄弟单词,比如单词army和mary互为兄弟单词。现在要给出一种解决方案,通过用户输入的单词,根据给定的字典找出输入单词有哪些兄弟单词。请具体说明数据结构和查询流程,要求时间和空间效率尽可能地提高。2、线程和进程的区别及联系?如何理解“线程安全”问题?3、C和C++中如何动态分配和

2012-09-25 21:22:02 2310 2

原创 2012-9-23 搜狗笔试

答案仅供参考一、C/C++类1.以下程序的输入是()class Base{public: Base(int j):i(j){} virtual ~Base(){} void func1{i *= 10; func2();} int getValue(){reurn i;}protected: virtual void func2(){i++;}protected: in

2012-09-24 20:52:33 5021 3

原创 算法导论 第10章 思考题

10-1 列表之间的比较 未排序的单链表已排序的单未排序的双链表已排序的双链表SEARCH(L, k)nnnnINSERT(L, x)1n1nDELETE(L, x)nn11SUCCESSOR(L, x)1111PREDECESSOR(L,

2012-09-19 18:52:50 4049 4

原创 算法导论 10.2-5 环形链表实现字典操作INSERT、DELETE、SEARCH

一、题目用环形链表来实现字典操作INSERT、DELETE、SEARCH,并给出它们的运行时间二、代码//List.h#include using namespace std;//链表结点struct node{ node *next; int key; node(int x):next(NULL),key(x){}};//链表struct list{ nod

2012-09-18 19:47:43 3129

原创 算法导论 10.1-5 双端队列

一、题目栈的插入和删除操作都是在一端进行的,而队列的插入和删除却是在两头进行的。另有一种双端队列(deque),其两端都可以做插入和删除操作。对于一个用数组构造的双端队列,请写出四个在两端进行插入和删除的操作的过程,要求运行时间都为O(1)二、伪代码NEXT(p, l)1 if p = l2 then ret <- 13 else ret

2012-09-18 18:33:17 5078 4

原创 算法导论 10.1-2 用一个数组实现两个栈

一、题目说明如何用一个数组A[1..n]来实现两个栈,使得两个栈中的元素总和不到n时,两个都不会发生上溯。注意PUSH和POP操作的时间应为O(1)二、思考分别用数组的两端作为两个栈的起点,向中间扩展,两个栈中的元素总和不超过n时,两个栈不会相遇三、代码//用一个数组实现两个栈struct stack2{ //栈1和栈2的栈顶指针 int top1,

2012-09-18 18:29:29 7354

原创 算法导论 9.1-1 求第二小元素

一、题目证明:在最坏情况下,利用n+ceil(lgn)-2次比较,即可得到n个元素中的第2小元素。(提示:同时找最小元素)二、思考step1:对所有元素,两个一组比较大小,小的一个进入下一轮比较。一直到比较出最小的元素。此时所有比较结果构成一棵二叉树。比较次数为n-1。step2:沿着树从树根向下到叶子,找出第二小的元素,比较次数是ceil[lgn]-1。令m2[p

2012-09-16 14:20:23 8558 17

原创 2012-9-15 搜狐笔试

一、不定项选择题1.C/C++语言:以下打印结果为()。#include using namespace std;void swap_int(int a, int b){ int temp = a; a = b; b = temp;}void swap_str(char *a, char *b){ char *temp = a; a = b; b = temp;

2012-09-15 20:12:08 3622 4

原创 算法导论 6-3 Young氏矩阵

一、题目二、思考a)不唯一2 3 4 58 9 12 14 16 c)提取Y[1][1],并用ox7FFFFFFF填充。然后向右下调整YOUNG-EXTRACR-MIN(Y)1 if Y[1][1] == 0X7FFFFFFF2 then error "heap underflow"3 min <- Y[1][1]4 A

2012-09-13 20:18:05 3731 3

原创 算法导论-18-2-连接与分裂2-3-4树

a)插入操作:一个结点分裂时,分裂出一个新的结点,新结点和原结点的高度是相同的。因此分裂不会改变结点的高度。结点的高度在它生成时就确定的,不会因为分裂而调度增加。树的高度增加的唯一方式是根结点的分裂。根结点分裂时,除了产生一个与根结点高度相同的结点外,还会产生一个新的根结点,新的根结点的高度是原根结点的高度+1删除操作:删除一个关键字时,或者把父结点的关键字补到结点中,或者合并

2012-09-08 14:49:12 2476

CPPUTest 3.6

开源的UT框架 CPPUTest 3.6 用于单元测试 如何使用该框架可参考本人博客

2014-11-15

自己动手写操作系统

《自己动手写操作系统》,PDF+源码,杨文博著。只有前三章

2013-08-05

VC++和VS写的小游戏贪吃蛇

用MFC实现的小游戏贪吃蛇,包含多个版本,和不同的游戏规则。 大部分是VC++6.0,也有VS2008 随便写的,没有经过很好的模块设计,代码有点乱

2012-06-12

背包问题九讲

P09: 背包问题问法的变化 P08: 泛化物品 P07: 有依赖的背包问题 P06: 分组的背包问题 P05: 二维费用的背包问题 P04: 混合三种背包问题 P03: 多重背包问题 P02: 完全背包问题 P01: 01背包问题

2012-05-14

openGL的配置文件

openGL的配置文件,包含:gl.h glaux.h glext.h glu.h glut32.dll glut32.lib glut.dll glut.h glut.lib

2011-04-08

windows下的远程控制工具vncviewer

windows下的远程控制工具vncviewer

2011-04-08

IIS配置所需要的软件fcgisetup_1.5_x86_rtw.zip

IIS配置所需要的软件fcgisetup_1.5_x86_rtw.zip

2011-04-08

数据结构演示软件,用C和pascal语言

数据结构演示软件,用C和pascal语言

2011-04-06

空空如也

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

TA关注的人

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