自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (4)
  • 收藏
  • 关注

原创 算法导论之散列表

散列方法哈系表有 m 个槽,如何将关键字 key 散列到哈系表的槽中呢?除法散列方法散列结果由下列散列函数决定:hash(key)  mod m其中 m 是 hash 表的大小,注意 m 的选择:(1) m 不应是 2 的幂。原因分析如下:

2011-10-08 21:35:45 1228

原创 约瑟夫问题的解法

约瑟夫问题是个有名的问题:N个人围成一圈(编号为 0 ~ n-1),从1个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。求胜利者的编号。例如N=6,M=5, 编号为: [0,1,2,3,4,5]被杀掉的人的序号为4,3,5,1,2。最后剩下0号。

2011-10-01 00:20:38 983

原创 求两个有序数组的中位数

设数组A的长度为m, 数组B的长度为n, 两个数组都都是递增有序的。求这两个数组的中位数首先我们看看中位数的特点,一个大小为n的数组,如果n是奇数,则中位数只有一个,数组中恰好有  (n-1)/2 个元素比中位数小。如果n是偶数,则中位数有两个(下中位数和

2011-09-29 12:06:27 25869 6

原创 求二叉树中节点的最大距离

递归求解,最大距离总是在一下两种情况产生情况1:  最大路径经过root这个例子中,最长路径经过root, 其距离等于左子树的高度 + 1 + 右子树的高度 + 1在这种情况下:如果只有左子树,右子树为空    最大距离 = (左子树的高度

2011-09-26 15:54:45 1211

原创 B-树

B-树的存储方式定义一条数据记录为二元组[key,data], key为记录的键值,data为记录的数据,一般是磁盘数据所在的地址。B-树的一个节点大小刚好定位一页大小(4KB),每个节点可以存储多个[key,data]的二元组。B-树的定义1 每个节点

2011-09-24 01:41:43 1142

原创 一道面试题

一 问题描述给定一个含有n个元素的整形数组a,再给定一个和sum,求出数组中满足给定和的所有元素组合,举个例子,设有数组a[5] = {1,2,3,4,5},sum = 7,则满足和为7的所有组合是{5,2}{4,3}{4,2,1}二 解法

2011-09-24 00:45:37 2065

原创 最大堆的插入

void insert(int *heap, int n, int e) { int i; for (i = (n+1); i > 1 && heap[i/2] < e; i /= 2) { heap[i] = heap[i/2]; } heap[i] = e;

2011-09-23 20:52:20 937

原创 最大堆的调整

void adjust(int *heap, int n, int r) { int child, i, tmp; tmp = heap[r]; for (i = r; i*2 <= n; i = child) { child = i*2;

2011-09-23 19:53:39 1271

原创 最长递增子序列问题

一 问题描述设序列L = 是长度为n的序列,L的一个递增序列描述为:, 其中下标序列 是递增的, 子序列 也是递增的。此递增序列的长度为 k二 解法1, 转化为LCS问题先把序列 L 按照从小到大的顺序排列, 得到另一个序列S,再求L和S的最长公共子序列

2011-09-23 19:09:33 10313

原创 最长公共子串问题

类比Subquence问题的动态规划解法,Substring也可以用动态规划解决,令c[i][j]表示同时以X[i]和Y[j]结尾,且包含X[i]和Y[j]的公共子串的长度。求c[i][j]的可以转化为子问题c[i-1][j-1]比如X =

2011-09-23 17:42:35 734

原创 LCS最长公共子序列

1 什么是公共子序列给定序列X,长度为m,序列Y,长度为n,存在两个严格递增的下表序列i1,i2,...,ik 和 j1,j2,...,jk 使X[i1] = Y[j1], X[i2] = Y[j2], ... X[ik] = Y[jk]则序列 或者 Y[j1],

2011-09-23 01:16:37 904

原创 main.c

// Copyright (c) 2004-2009 Sergey Lyubka//// Permission is hereby granted, free of charge, to any person obtaining a copy// of this softw

2011-08-07 00:10:57 1618

原创 getopt_long函数学习笔记

1.头文件#include #include #include #include 2.函数原型int getopt_long(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex);longindex参数如果没有设置为NULL

2009-04-06 11:18:00 3527

原创 sscanf函数和正则表达式

此文所有的实验都是基于下面的程序:char str[10];for (int i = 0; i 执行完后str的值为str = "!!!!!!!!!!"我们把str的每个字符都初始化为惊叹号,当str的值发生变化时,使用printf打印str的值,对比先前的惊叹号,这样就可以方便的观察str发生了怎样的变化。下面我们做几个小实验,看看使用sscanf和正则表达式格式化输入后,s

2009-04-05 23:12:00 21631 9

转载 回车符与换行符的起源

转自: http://blog.csdn.net/skywalker_nick/archive/2007/11/08/1873682.aspx<!--function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSe

2009-04-02 09:15:00 965

原创 apue2的ruptime和ruptimed程序例子

这个例子是一个c/s程序,有4个文件:ruptime.c clconn.c ruptimed.c initsrv1.c,其中ruptime.c和clconn.c构成client, ruptimed.c initsrv1.c构成server, client向server发送请求,server接到请求后运行uptime命令,并把结果返回给client。编译运行方式如下:1. 编辑/etc/serv

2009-03-31 08:51:00 1548 1

原创 文件权限与umask的作用

 1. 文件权限有读,写,执行三种权限,分别用r,w,x代表,这三种权限的数值大小如下表所示:1    x2    w4    r2. 根据这三个数值可以得到混合权限数值表1    --x2    -w-3    -wx4    r--5    r-x6    rw-7    rwx3. Linux的文件有三种权限组成,执行ls -lh可以看到Lin

2009-03-23 22:24:00 2456

原创 约瑟夫问题求解(C++)

 设有n个人站成一圈,每个人持有一个密码(正整数)。现从第t个人开始,按顺时针方向“1,2,3,4,…”循环报数,数到m1(第t个人所持密码)的人出列,然后从出列者的下一个人重新开始报数,数到m2(刚出列者所持密码)的人又出列,如此重复进行,直到n个人都出列为止。问题是:对于任意给定的n个人的原始排列顺序,求出n个人的出列顺序。输入数据从文本文件中读取。该文件有两行:第1行只有一个

2009-02-26 21:58:00 3685 2

原创 C++沉思录

1,如果派生类和基类有相同名字的变量,派生类会覆盖基类的变量吗?class A { int i; };  class B : public class A { int i; };不会覆盖,只会隐藏,sizeof(A) = 4, sizeof(B) = 8可以证明这一点,隐藏的意思是说通过派生类的对象或指针无法访问基类的变量,实际上,编译器可能会对类的member加上class名称,形成

2009-02-23 20:52:00 1216

原创 深入理解C++的多态

一. 编译器对C++的多态是通过在Class里面插入一个vptr指针,同时生成一个virtual table, 让vptr指向这个virtual table来实现的,那么什么样的Class才有必要设置vptr指针呢?如下图所示:下面分6种情况讨论(1)有虚函数的基类class A {public: virtual void foo() {}protecte

2009-02-23 12:54:00 826

原创 C++虚函数调用的汇编过程

下面的程序改编自《Thinking in C++》的Instrument4.cpp#include using namespace std;enum note { middleC, Csharp, Cflat }; // Etc.class Instrument { public: virtual void play(note)

2009-02-19 19:51:00 1155

原创 AT&amp;amp;T汇编语言笔记

1。在gcc产生的汇编中,$0x80498d4表示立即数,而0x80498d4表示内存地址0x80498d4对应的内容。对于lable,比如value,则$value表示value的地址,value表示value的值。设函数func的地址&func = 0x8048828这两种调用都是一样的1) call 0x80488282) movl $0x8048828 %edx    call *%edx

2009-02-19 19:48:00 810

原创 排序算法

 #include #define LENGTH 10#define MAXVALUE ~(~1<<30)using namespace std;int A[LENGTH] = {16, 4, 10, 14, 7, 9, 3, 2, 8, 1};/* ===========================插入排序=================================

2009-02-16 22:51:00 438

原创 KMP算法实现

/* * ===================================================================================== * * Filename: kmp.cpp * * Description: KMP算法实现 * * Version: 1.0 *

2009-02-13 16:16:00 1828

原创 关于c语言字符串

 1. strlen(char *str) 返回str中除去结束字符/0的字符数 2. 系统对所有""号内的字符串,无论是全局的和局部的,都会在字符串区域开辟一块内存。例如:     char *p = "hello";     系统为hello开辟一块内存,并把p指向这块内存。3. 初始化动态分配的字符串不能使用=,应使用strcpy,例如把world追加到hello的末尾:    // 正

2009-01-14 12:03:00 622

原创 Memorky Layout and Allocation

Lecture 5    Memorky Layout and Allocation使用静态内存分配方式的不一定都是静态变量, 也可能是全局变量但静态变量一定是静态内存分配int a;int b = 1;static int c;        //静态全局变量:只在文件内使用static int d = 1;char *str = "str";static char *str1 = "str1"

2009-01-11 13:50:00 871

原创 编译器专业术语

1.intermediate representation,IR,中间代码表示2.literal table,常数表3.front end,前段4.back end,后端5.register transfer language,RTL,寄存器传递语言5.rtls expression,RTX,rtl表达式

2008-11-23 22:54:00 1034

原创 fgets函数的理解

fget函数的原型如下:char *fgets(char *buf, int n, FILE *fp)功能:从文件流读取一行,送到缓冲区,使用时注意以下几点:1.当遇到换行符或者缓冲区已满,fgets就会停止,返回读到的数据,值得注意的是不能用fgets读二进制文件,因为fgets会把二进制文件当成文本文件来处理,这势必会产生乱码。2.每次调用,fgets都会把缓冲区的最后一个字符设为

2008-11-12 19:45:00 51865 7

原创 浮点数的二进制表示-实例

/* 注意,形如2[3]表示2的3次方 */实例一:38414.4 的IEEE浮点数表示法(double):double型的指数域有11位,所以偏置值为 2[11-1]-1 = 102338414.4 = 1001011000001110.0110011001100110011001100110011001101 = 1.0010110000011100110011001100110011

2008-10-30 18:41:00 3940 1

原创 C语言类型转换的原则

c语言类型转换的根本原则是必须保证数据不能丢失!在这个基础上,总结两个基本原则.1.若两种类型的比特数不同,转换成比特数高的类型如:-1 > (unsigned char)1会把(unsigned char)1转换成int型,变成1,表达式的值为false2.若两种类型的比特数相同,且一种有符号,一种无符号,则转换成无符号类型。如:-1 > (unsigned int)1会把int型的-1转换成(

2008-10-30 09:48:00 757

原创 卡内基SSD6 System-Level Programming Exercise 1总结

        个人认为SSD6 Exercise 1是卡内基有史以来最经典的题目,本来想写一篇大家都看得懂的长篇大论,无奈时间不够,只好延续以往记流水帐的风格,把心得一条一条列出来。        心得1.从汇编的层次去理解c语言传值和传地址的区别.看实例int main (int argc, char *argv[]) {    int start = 10;    int stride = 

2008-10-24 20:23:00 2045 1

转载 求职需向主考官提出的10个问题

1.贵公司对这项职务的工作内容和期望目标为和?有没有什么部分是我可以努力的地方?  2.贵公司是否有正式或非正式教育训练?  3.贵公司的升迁管道如何?  4.贵公司的多角化经营,而且在海内外都设有分公司,将来是否有外派、轮调的机会?   5.贵公司能超越同业的最大利基点为何?  6.在项目的执行分工上,是否有资深的人员能够带领新进者,并让新进者有发挥的机会?  7.贵公司强调的团队合作中,其它的

2008-09-19 22:56:00 676

原创 fork的执行

 先看看一段fork的程序int main (void) {    pid_t pid;    语句a;    pid = fork();    语句b;}  1.当程序运行到 pid = fork()时,这个进程马上分裂(fork的中文意思)成两个进程,我们称为父进程和子进程,子进程是父进程的副本,副本的意思是子进程把父进程的数据空间,堆和栈都复制一遍给自己用,这要求在内存给子进程分配和父进程同

2008-09-17 00:30:00 1215

原创 apue2读书笔记

1.判断文件类型的两种方法1):使用宏函数struct stat buf;lstat("/home",buf);if ( S_ISDIR(buf.st_mode) ) {    printf("目录文件");}2):使用st_mode和S_IFMT的与运算结果struct stat buf;lstat("/home",&buf);if ( buf.st_mode & S_IFMT == S_IFD

2008-09-10 22:42:00 676

原创 如何为元素添加样式表

testvar h1 = document.getElementById("h"); 要为h1添加样式class="blue bold"有三种方法1.    h1.setAttribute("class","blue bold");2.    h1.setAttribute("className","blue bold");3.    h1.className = "blue bold";第1种方

2008-07-17 14:09:00 501

原创 如何为元素添加样式表

testvar h1 = document.getElementById("h");如果要添加 class="blue bold",有三种方法1.    h.setAttribute("class","blue bold");2.    h.setAttribute("className","blue bold");3.    h.className = "blue bold";第1种方法只支持f

2008-07-17 13:57:00 521

原创 关于DOM的nodeType

*元素-1    h1 id="h1">An HTML Document/h1>    var element=document.getElementById("h1")    element.nodeType = 1    element.nodeName = H1    element.nodeValue = null*文本-3    var element = document.getEle

2008-07-17 02:26:00 675

原创 AVL树的C++实现

包括3个文件:AvlNode.h    AvlTree.h和main.cpp1.节点类的定义AvlNode.h#ifndef AVLNODE_H#define AVLNODE_H#include using namespace std;template  class AvlTree; //声明AvlTree类template class AvlNode{public:       frien

2008-06-08 19:47:00 4710 1

原创 stdlib.h头文件下的常用函数

atof()将字符串转换成浮点数的函数 原形:double atof(const char *s) 功能:把s所指向的字符串转换成double类型。    s格式为:符号 数字.数字 E符号 数字 返回值:字符串的转换值。 头文件:math.h、stdlib.h atoi()将字符串转换成整型数的函数 原形:int atoi(const char *s) 功能:把s所指向的字符串

2008-04-15 16:49:00 16482 1

原创 计算器c++实现

1.中缀表达式转后缀表达式 中缀:a/(b-c)+d*e后缀: abc-/de*+转换步骤:(1)从左到右扫描中缀表达式,遇到#转(6);(2)遇到操作数直接输出;(不进栈)(3)遇到“)”,则连续出栈输出,直到遇到“(”为止(“(”出栈但不输出);否则(4)若是其它操作符,则与栈顶的操作符比较优先级;若优先级小于栈顶的优先级,如a*b+c,说明*号所需的两个数a和b已经输出,则把

2008-04-15 13:18:00 1804

俄罗斯方块源码

使用 hge 游戏引擎开发的俄罗斯方块,代码简洁,功能全面, 适合新手学习

2012-03-08

spring源码经典实例

大名鼎鼎的jpetstore,我把它重组为一个web工程,更加方便部署,只需修改jdbc.properties就可以了

2007-10-21

servlet源代码

研究servlet是一件很有意义的事

2007-10-06

ibatis in action(英文版pdf)

ibatis经典著作

2007-10-06

空空如也

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

TA关注的人

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