自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 资源 (11)
  • 收藏
  • 关注

原创 解题笔记(40)——第1-39篇合集

2011年7月至今,解题笔记系列已有39篇文章,本文做一个归纳及索引,方便网友阅读参考。其中的题目多出自两个博客,一个是JULY的,另一个是何海涛的。上面有题目,也有解题思路及代码。      JULY的博客  http://blog.csdn.net/v_JULY_v/ar

2011-10-07 11:09:06 21642 26

原创 解题笔记(39)——过河问题

问题描述:在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,N个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,N人所需要的时间已知;而如果两人同时过桥,所需要的时间就是走得比较慢的那

2011-10-06 16:05:29 14874 5

原创 解题笔记(38)——大整数阶乘计算

问题描述:求一个整数 n 的阶乘,0      比如n = 50,结果为30414093201713378043612608166064768844377641568960512000000000000     思路:从阶乘的定义出发,n! = n * (n-

2011-10-05 22:36:03 10267 8

原创 解题笔记(37)——Catalan数计算及应用

问题描述:卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。输入一个整数n,计算h(n)。其递归式如下:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2,h(0) = h(1) = 1)    该递推关

2011-09-10 09:17:11 32053 19

原创 解题笔记(36)——最大公约数问题

问题描述:求两个正整数的最大公约数。     思路:这是一个很基本的问题,最常见的就是两种方法,辗转相除法和辗转相减法。通式分别为 f(x, y) = f(y, x%y), f(x, y) = f(y, x - y) (x >=y > 0)。根据通式写出算法不难,这里

2011-09-05 20:37:39 9242

原创 一些字符串及内存操作的函数

本文给出了一些字符串及内存操作的函数的实现:memcpy、memset、memmove、strcpy、strcmp、strlen、strstr、strcat,为了与标准区分,所有函数名前加了下划线。下面给出这些函数的实现。如果错误,还请读者指正。//函数功能: 拷贝不重叠

2011-09-03 14:31:54 9016 6

原创 解题笔记(35)——旋转数组中的最小元素

问题描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。      思路:这道题最直观的解

2011-08-30 21:58:51 12324 4

原创 解题笔记(34)——求最长单调递减子序列

问题描述:求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}。      思路:这是很经典的一个问题,用动态规划解决。假设源数组为A,定义一个辅助数组为B,B[i]表示以A[i]结尾的最长递减序列的长度。举个简单

2011-08-30 19:41:02 15111 4

原创 解题笔记(33)——按层次遍历二元树

问题描述:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。          例如输入   8  / / 6 10/ / / /5 7 9 11输出8 6 10 5 7 9 11。

2011-08-29 19:13:07 18232 1

原创 解题笔记(32)——输入一颗二元查找树,将该树转换为它的镜像

问题描述:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。          例如输入:  8  / /  6 10 //

2011-08-29 14:37:29 12063 4

原创 解题笔记(31)——从数列1,2...n中随意取几个数,使其和等于m

问题描述:输入两个整数n和m,从数列1,2.......n中随意取几个数,使其和等于m,要求将其中所有的可能组合列出来。      思路:这个问题其实背包问题的变形,本文给出两种解法。      解法一:用递归,效率可能低了点。假设问题的解为F(n, m)

2011-08-29 11:37:21 21149 4

原创 有点意思的C/C++问题及解答:21-25

问题21:判断C编译器是否支持嵌套注释。       解法:嵌套注释是指在/* */ 中出现/* ... */,定义这个式子: /*/*/0*/**/1  。如果编译器不支持嵌套注释,那么这个式子为0*1。如果支持嵌套注释,那么这个式子为1。摘自《C陷阱与缺陷》。

2011-08-28 15:26:46 7786 1

转载 解题笔记(30)——找含单链表的环入口点(转网上某位高手的解法)

原文出处 http://hi.baidu.com/iwitggwg/blog/index/1  很不错。        问题1:如何判断单链表中是否存在环(即下图中从结点E到结点R组成的环)?        设一快一慢两个指针(Node *fast, *low)同时从

2011-08-27 20:22:37 27156 15

原创 解题笔记(30)——找含单链表的环入口点

问题描述:有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。如果链表存在环,找到环的入口点?      思路:这道题的原型可能来自《C专家编程》一书,题目为”怎样才能检测到链表中存在循环“,书中给出的最终算

2011-08-27 16:17:20 9489 2

原创 解题笔记(29)——珠子问题

问题描述:一串首尾相连的珠子(n个),有N种颜色(N      思路:可以利用一种计数的方法。定义两个指针p1和p2,主要有三个步骤:     (1)p1向前移动,如果p1所指的珠子颜色编号为 i ,则增加 i 的出现次数。当出现的颜色种数为N时,p1停止

2011-08-27 12:43:30 9274 2

原创 解题笔记(28)——寻找捣乱分子对

问题描述:多人排成一个队列,我们认为从低到高是正确的序列,但是总有部分人不遵守秩序。如果说,前面的人比后面的人高(两人身高一样认为是合适的),那么我们就认为这两个人是一对“捣乱分子”,比如说,现在存在一个序列:176, 178, 180, 170, 171      这些捣乱

2011-08-25 14:25:55 9939

原创 解题笔记(27)——找数组中的特定元素

问题描述:一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。      思路:如果能用两个辅助数组,那么相对来说简单一点,可定义数组Min和数组Max,其中Min[i

2011-08-24 21:19:44 8675 1

原创 解题笔记(26)——排队问题

问题描述:12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?        思路:可以用递归来解决。假设已按高矮顺序编号从0到11,即0号最矮、11号最高,(i, j)表示某个人在队列中的位置。对于0号只能排在(0, 0

2011-08-23 21:45:29 8447 4

原创 解题笔记(25)——把数组排成最小的数

问题描述:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32,  321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。      思路:先将整数数组转为字符串数组,然后字符串数组进行排序,最后依

2011-08-21 10:40:51 20737 9

原创 解题笔记(24)——找出数组中两个只出现一次的数字(数组)

问题描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。     思路:如果只有一个数字只出现一次,而其他都出现两次,则直接将所有数字做一次异或运算即可,因为相等的数字异或一下结果为

2011-08-20 18:57:03 13701 1

转载 智力题(2)

摘自:http://www.cnitblog.com/zouzheng/articles/21826.html1.有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?答:把两根香同时点起来,第一支香两头点着,另一支香只烧一头,等第一支

2011-08-19 16:34:52 4287 1

转载 智力题(1)

摘自:http://www.cnitblog.com/zouzheng/articles/21836.html1. 一个粗细均匀的长直管子,两端开口,里面有4个白球和4个黑球,球的直径、两端开口的直径等于管子的内径,现在白球和黑球的排列是wwwwbbbb,要求不取出任何一个球

2011-08-18 17:31:16 3418

原创 代码开源(7)——测试程序执行时间

本文介绍两种测试程序时间的方法,一种是通过间隔计数,另一种通过周期计数器。针对这两种方法,分别给出Windows和 UNIX 下的实现。       首先介绍这两种方法的含义,摘自《深入理解计算机系统》。间隔计数:操作系统维护者每个进程使用的用户时间量和系统时间量的计数值,当

2011-08-14 21:35:48 4838

原创 解题笔记(23)——一个线程竞争的问题

下面这个程序存在竞争,当对等线程执行 int myid = *((int *)argv)  前,如果主线程先执行了 i++,那么对等线程的执行结果是不正确。#include #include #define N 100void *thread(void *arg

2011-08-13 22:03:28 2201

原创 代码开源(6)——UNIX并发编程

之前在代码开源(3)——UNIX中CS简单实现 给出的代码,存在一个问题,那就是只支持单个连接。本文整理给出了三种方法:多进程、IO多路复用、多线程,主要参考《深入理解计算机系统》一书。对源码做了修改整理,加了些批注。下面一一给出,只修改服务器端的主程序,客户端代码不变。其中用到

2011-08-13 19:32:07 2496

原创 代码开源(5)——彩色bmp图片转灰度

下面这个程序可以将一个彩色的bmp格式图片转换灰度图片:#include #include #include /*BMP文件格式如下:㈠BITMAPFILEHEADER:位图文件头(只用于BMP文件) bfType="BM" bfSize

2011-08-12 21:35:22 3498

原创 代码开源(4)——Windows 中CS简单实现

介绍Windows中,TCP/IP的建立过程,只是一个最简单的实现。VS2008中测试通过。#include<winsock.h> #include<stdio.h>

2011-08-12 21:28:00 2322

原创 代码开源(3)——UNIX中CS简单实现

主要摘自《深入理解计算机系统》一书,略作整理,加了些备注。可以简单了解一下UNIX网络编程。下面程序已在Ubuntu9.10下测试通过。     客户端主程序:#include "client.h"int main(int argc, char **arg

2011-08-12 21:16:11 2707

原创 代码开源(2)——UNIX 健壮I/O函数

摘自《深入理解计算机系统》一书,几个IO读写的封装函数。一共是两类,一是无缓冲的输入输出函数;二是带缓冲的输入函数。这几个函数有一个共同点,就是比较好的处理了“不足值”的情况。所谓“不足值”是指read和write函数传送的字节比应用程序要求的要少。下面几种情况可能会出现不足值:

2011-08-12 20:55:14 3689

原创 代码开源(1)——数据库部分操作封装C#实现

曾做过几个ASP.NET的项目,其中大量用到数据库操作,因此单独写了个类,方便使用。SqlConnection , SqlCommand ,ExecuteNonQuery,ExecuteScalar,SqlDataAdapter,DataSet

2011-08-11 17:10:10 3919

原创 代码开源——前言

学了不少年的计算机,做了一些小项目,写了些程序。有些代码,个人觉得挺有用的,略作整理,放在博客上,就当备份了。欢迎各位网友来踩,若对各位有所帮助,在下不甚荣幸。若有什么疑问或是建议,也可以给我留言,交流交流,共同进步。       所贴代码,各位网友尽可使用,不存在什么版权问

2011-08-11 16:58:47 3221

原创 设计模式C++实现(16)——状态模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大

2011-08-10 14:58:17 28595 21

原创 设计模式C++实现(15)——观察者模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大

2011-08-10 11:13:02 60062 35

原创 设计模式C++实现(14)——职责链模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。职责链模式

2011-08-09 21:22:01 20087 17

原创 设计模式C++实现(13)——中介者模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。中介者模式。

2011-08-09 20:23:02 21724 9

原创 设计模式C++实现(12)——备忘录模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大

2011-08-09 16:35:15 17871 9

原创 设计模式C++实现(11)——装饰模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大

2011-08-09 15:11:18 35407 27

原创 设计模式C++实现(10)——桥接模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大

2011-08-08 20:54:55 23836 13

原创 设计模式C++实现(9)——享元模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大

2011-08-08 19:43:27 25420 43

原创 设计模式C++实现(8)——代理模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大

2011-08-08 15:05:43 35417 15

TCP-IP详解卷1:协议

这是一本介绍TCP-IP的经典著作,深入浅出,理论与实际结合,非常适合初学者。

2011-07-26

Linux源码剖析及实验环境2

Linux0.11 实验环境,可以在Windows上模拟运行.

2010-12-23

STL源码剖析书 另附源码一份SGI版

包含了2份文件,一份是STL源码剖析的书,是侯捷老师写的书,不过是扫描的,比较模糊。另一份是STL的源码,是SGI版。

2010-12-23

Linux源码解析及实验环境1

这是一个压缩文件,里面有(1)赵炯老师的Linux源码解析一书(2)Linux0.11源码一份,带注解和未带注解各一份

2010-12-23

Ubuntu9.04下安装SimpleScalar

SimpleScalar是一款经典的CPU模拟器,本文介绍了如何在Ubuntu9.04下安装SimpleScalar。安装中会出现许多问题,文中给出了解答。

2009-12-25

编译原理课程设计Lex Yacc

编译原理的课程设计,Lex是生成词法程序的程序,而Yacc是生成语法程序的程序。资源给出了Lex和Yacc的源代码和示例,仅提供一个参考的价值

2009-01-18

深入理解计算机系统(英文版)

以一种全新的角度介绍了计算机系统,深入浅出,适合于有一定计算机基础的人员学习。通过这本书,可以使你对计算机系统有一个全新的认识

2009-01-18

See MIPS Run 中文版

比较详细的介绍了MIPS体系结构,包括指令集、缓存结构、TLB结构、协处理器等等。同时还介绍了MIPS处理器与Linux系统的结合。

2009-01-18

多核加速串行程序技术综述

介绍多核加速串行程序技术,对于多核串行程序有一定认识.

2008-11-15

空空如也

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

TA关注的人

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