自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 windows与linux换行符问题

<br />在Linux下的换行是/n,而在Windows下的换行是/r/n。不经过处理的话,两者的文件在显示的时候会出现问题,比如一个Linux的文本文件 用Windows记事本打开的时候不会换行格式很乱,一个Windows文件在Linux下用VI打开的话会出现^M字符<br /> <br />windows文本文件用回车符和换行符的组合/r/n来表示行尾。<br />linux/unix换行符为/n<br />Mac文本文件用/r表示行尾<br /> <br />C程序使用一个/n来表示行尾,所以,如

2011-04-19 23:30:00 1474

原创 java正则表达式

  正则表达式是一种强大而灵活的文本处理工具。使用正则表达式,我们能够以编程的方式构造复杂的文本模式,并对输入的字符串进行搜索。 简单的来说,正则表达式就是以某种方式来描述字符串。 java从jdk1.4开始支持正则表达式。   一、简介 java.util.regex 是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。 它包括两个类:Pattern 和 Matcher...

2011-04-04 12:38:07 214

原创 Linux内核链表(二)

4)遍历 遍历是链表最经常的操作之一,为了方便核心应用遍历链表,Linux链表将遍历操作抽象成几个宏。 在介绍遍历宏之前,我们先看看如何从链表中访问到我们真正需要的数据项: a)由链表结点到数据项变量 由上面的分析可知,内核链表中仅保存了数据项结构中list_head成员变量的地址,那么我们如何通过这个list_head成员访问到作为它的所有者的节点数据呢?在list.h文件中有一个lis...

2011-04-01 22:06:43 210

原创 Linux内核链表

 一、链表数据结构简介   链表是一种常用的组织数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。   通常链表包括两个域:数据域和指针域,数据域用于存储数据,指针域用于建立...

2011-04-01 17:28:24 183

原创 编写第一个内核模块

    内核模块是Linux内核向外部提供的一个接口,其全称是 动态可加载内核模块(Loadabkle Kernel Module,LKM)。 Linux 内核之所以提供模块机制,是因为它本身是一个单内核( monolithic kernel )。单内核的最大优点是效率高,因为所有的内 容都集成在一起,但其缺点是可扩展性和可维护性相对较差,模块机制就是为了弥补这一缺陷。...

2011-03-30 20:07:18 240

原创 求组合数

求组合数 从n个数里面取m个数 (递归实现) /** * Description: * 求组合数(递归法) * 从n个数里面取m个数 算法分析: * 用递归的方法,每选出一个数字之后就把这个数字去掉,用剩余的数字继续递归 * @author cm * */ public class Combination { private int m; priv...

2011-03-26 20:23:07 199

原创 结构体的初始化

定义一个结构体: #define LENGTH 256 struct book { char title[LENGTH]; char author[LENGTH]; float value; };     初始化方法:   (1)使用一个花括号括起来、逗号分隔的初始化项目列表进行初始化。每个初始化项目必须和要初始化的结构体成员类型相匹配。(类似于数组的初始化...

2011-03-19 23:29:28 179

原创 访问XHTML元素

为了动态修改XHTML元素,必须能访问XHTML元素,DOM提供了2种方式来访问XHTML元素: --  根据id访问 --  利用节点关系访问 (1)根据ID访问XHTML元素 document.getElementByID(idVal) : 返回文档中id属性值为idVal的XHTML元素 例如: &lt;script type="text/javascript"&gt; fu...

2011-03-13 09:59:31 213

原创 背包问题

与0-1 背包问题类似,所不同的是在选择物品i 装入背包时,可以选择物品i 的一部分,而不一定要全部装入背包. 算法分析: 首先计算每种物品的单位重量的价值, 然后依贪心策略,将尽可能多的单位重量价值最高的物品装入背包. 实现: /* * description: 背包问题 * 问题描述:与0-1背包问题类似,所不同的是在选择物品i装入背包时,可以选择 * 物品i的...

2010-12-14 18:27:51 273

原创 0-1背包问题

0-1背包问题: 给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的总容量为c。 问:应该如何选择装入背包的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两种选择,即装入背包或不装入背包,因此该问题称为0-1背包问题。   该问题的形式化描述是:  0-1背包问题具有最优子结构性质,可用动态规划法解决。 解法一: 动态规划 算法分...

2010-12-14 18:00:13 311

原创 装载问题

装载问题 有一批共n个集装箱要装上两艘载重量分别为c1和c2的轮船,集装箱总重量小于等于c1+c2,要求定一个合理的装载方案可将这n个集装箱装上这两艘轮船。 可以证明,如果一个给定装载问题有解,则采用下面的策略可得到最优的装载方案: 1)首先将第一艘轮船尽可能装满 2)将剩余的集装箱装上第二艘轮船   将第一艘轮船尽可能装满等价于选取全体集装箱的一个子集,使该子集中集装箱重量之和接近第...

2010-12-12 18:16:05 326

原创 最优装载问题

问题描述: 有一批集装箱要装上一艘载重量为C的轮船,要求在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。 算法分析: 采用重量轻者先装的贪心选择策略,可产生最优装载问题的最优解。   算法实现: OptinalLoading.java /* * 最优装载 * 有一批集装箱要装上一艘载重量为C的轮船。 * 要求在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。...

2010-12-12 11:13:16 227

原创 C 标准库qsort函数的使用

快速排序(quick sort)是最有效的排序算法之一。 C实现的快速排序算法的函数名为qsort(), qsort()函数对数据对象数据进行排序。其函数原型在头文件stdlib.h中 其原型为: void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *,const void *));  第一个...

2010-11-30 20:02:24 268

原创 喝汽水问题

问题描述: 1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到几瓶汽水? 这个问题其实是个比较典型的递推问题,每2个空瓶都可以再换1瓶新的汽水,这样一直递推下去,直到最后不能换到汽水为止。 解法一: /* * description: * 1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到几瓶汽水? * * auther: cm ...

2010-11-28 21:51:03 215

原创 最大子段和(三)

最大子段和问题 解法三: 算法分析: 对于序列a,设j代表当前序列的终点,i代表当前序列的起点 分析:如果a[i]是负的,那么它不可能是最大子段的起点,因为任何包含a[i]为起点的子段都可以通过         用a[i+1]为起点而得到改进。类似的,任何负的子段都不可能是最优子段的前缀(原理相同).         如果在循环中检测到a[i]到a[j]的子段是负的,那么可以推进i. 结...

2010-11-21 10:04:31 213

原创 最大子段和(二)

最大子段和问题   解法二:分治法 算法分析: 最大子段和可能在三处出现。 1)整个出现在输入数据的左半部 2)整个出现在右半部。 3)跨越输入数据的中部从而位于左右两半部分之中 前两种情况可以递归求解,第三种情况的最大和可以通过求出前半部分的最大和(包含前半部分的最后一个元素) 以及后半部分的最大和(包含后半部分的第一个元素)而得到,前后两部分和相加。 三部分中的最大者,即...

2010-11-20 19:15:53 202

原创 最大子段和(一)

问题描述: 给定n个整数(可能为负数)组成的序列a1,a2,a3,...,an, 求该序列子段和的最大值 例如: X={-2, 11, -4, 13, -5, -2}, 其最大子段和为20 最大子段为:11,-4,13 解法一:穷举法 列举所有的可能,求其中的最大值 算法实现如下: /* * description: 最大子段和问题 * 问题描述:给定n个整数(可能为负数)...

2010-11-20 10:31:48 181

原创 动态规划之最长单调递增子序列

问题描述: 找出由n个数组成的序列的最长单调递增子序列 解法一: 原序列记为X,对n个数递增排序,构造一个新序列Y, 对X,Y求其最长公共子序列即可. /* * description: 最长单调递增子序列 * 问题描述: * 找出由n个数组成的序列的最长单调递增子序列 * 算法设计: * 解法一: * 原序列记为X,对n个数递增排序,构造一个新序列Y, 对X,Y求...

2010-11-18 22:33:56 321

原创 动态规划之最长公共子序列

一个给定序列的子序列是在该序列中删去若干元素后得到的序列。若给定序列X={x1, x2, ..., xm},则另一序列Z={z1, z2, ..., zk},X的子序列是指存在一个严格递增下标序列i, 使得对于所用的j=1, 2, 3,...,k有zj = xi. 例如:序列X={A, B, C, B, D, A, B}的一个子序列Z={B, C, D, A}。 给定两个序列X和Y, 当另一序...

2010-11-18 14:25:09 165

原创 矩阵连乘问题

/* description: * * 动态规划算法之矩阵连乘问题 * 1)矩阵Ai*Ai+1*...*Aj简记为A[i:j],所需的最小计算次数为m[i][j]. * 2)当i=j时,m[i][j] = 0 * 3)当 i&lt;j时,假设使m[i][j]最小的最优次序是在Ak和Ak+1之间断开, * 则m[i][j] = m[i][k]+m[k+1][j]+p[i-1]...

2010-11-16 21:39:27 235

原创 strlen函数的自定义实现

递归法: int strlen(char *str) { if (*str != '\0') { return strlen(++str) + 1; } else { return 0; } }  

2010-11-12 17:01:26 194

统计字符串中字符出现的次数

方法一: 用数组实现,把字符的ASCII码值作为数组的下标,对字符出现的次数不断累加.   实现对ASCII码128个字符出现次数的统计. //字符统计 public class CharacterTest { public static void main(String[] args) { if (args.length == 0) { System.o...

2010-10-27 20:36:24 220

指向函数的指针

指向函数的指针是一个指针变量,它指向一个函数。一个函数名是一个指针,它指向函数的代码。函数的调用可以通过函数名,也可以通过指向该函数的指针。 指向函数的指针其定义的一般形式为: 类型名  (*指针变量名)(); 例如: int (*p)(int i, int j); p是一个指针,它指向一个函数,该函数有两个整型参数,返回类型为int .   注: int *p(int i, in...

2010-10-23 13:58:34 136

二分搜索法的简单实现

二分搜索算法是运用分治策略的典型例子。 基本思想:将n个元素分成大致相同的两半,取a[n/2]与x进行比较。如果x==a[n/2],则找到,算法终止。如果a[n/2]&gt;x,则只要在数组的左半部分继续搜索x.如果x&gt;a[n/2],则只要在数组的右半部分继续搜索。   算法简单实现如下: //二分搜索法 public class BinarySearch { /* 采用二...

2010-10-20 09:11:34 297

Java二维数组动态扩展的简单实现

// 二维数组动态扩展的简单实现(规则数组) // 使用System.arraycopy(from, fromIndex, to, toIndex, count)方法 public class DynamicArray { private static final int MAX = 4; public static void main(String[] args...

2010-10-17 09:25:53 878

最小生成树之Prim算法

Prim算法Java朴素版 //Prim算法求最小生成树,使用Java语言的简单实现 // 图用邻接矩阵存储 import java.util.*; public class PrimMST { private static int MAX = Integer.MAX_VALUE; public static int prim(int graph[][], int n) ...

2010-10-16 22:45:55 180

MySQL在Windows下的基本配置

  说明:本文针对mysql-noinstall版本,也就是解压缩版在Windows下的基本配置   操作系统:     Windows XP MySQL版本: mysql-5.1.50-win32   1、下载MySQL解压包 mysql-noinstall-5.1.50-win32.zip     解压缩到某个目录。例如:D:\Java\mysql   2、配置   My...

2010-09-26 13:45:23 182

原创 自己写的Java分页类

自己写的分页类//分页类 package xiyou.cm.cattsoft.util; public class Page { private int totalRows; //总共记录数 private int pageSize; //每页显示的条数 private int currentPage; //当前页 private int totalPages; //总页数 private int startRow; //当前页在数据库中的起始行 public

2010-09-23 18:09:00 623

原创 常用的数据库分页查询代码

所有操作的表为emp表Oracleselect * from emp where rownum ?; select * from (select emp.*,rownum as num from emp where rownum = 2 ; //从emp表中取出记录号为 2到7的6条记录MySQLselect * from emp limit ?,?; select * from emp limit 10, 100; //从emp 表中第10条开始取出100条记录 select * from e

2010-09-23 17:34:00 564

原创 在struts框架中处理表单请求时的中文乱码问题

1、在执行Java程序出现乱码的原因在Java程序中,异种语言之间的转换是通过Unicode编码来完成的。假设有两种不同的语言A和B,转换的步骤为:先把A转换成Unicode,再把Unicode转换为B。   举例说明:在gb2312中有一个汉字“李”,其编码为C0EE,欲转化为ISO-8859-1编码。步骤为:“李”转化成Unicode,得到674E,在把674E转化成ISO-8859-1字符。当然这个映射不回成功,因为ISO-8859-1中根本就没有与674E对应的字符。所以就会出现乱码。2、Web应用

2010-09-23 11:26:00 615

原创 JSP中文乱码问题

在JSP开发中经常碰到这样的异常情况:JSP/Servlet页面的汉字乱码,产生这种现象的根本原因在于字符编码转换出错。1、客户端输出中文乱码问题(JSP页面)解决方案:或者:response.setContentType("text/html; charset=gbk");注意:response.setContentType()一定要放在response.getWriter()之前才能起作用,如果将它放在response.getWriter()之后,应为输出流已经获得,就无法改变编码格式了。2、对客户端表

2010-09-23 10:50:00 645

原创 Ubuntu下JDK安装配置

安装JDK:sudo apt-get install sun-java6-jdk提示:安装过程中需要你回答是否同意使用协议(终端中红蓝色的提示界面),此时按tab键至OK,再按回车即可正常安装设置当前默认的java解释器和编译器:配置默认解释器:sudo update-alternatives --config java执行后会出现类似如下的画面:

2010-04-05 23:27:00 457

visio入门教程

visio基础教程,学习visio基础知识的好东西。

2012-03-06

Linux基础命令大全

详细介绍了一些Linux基础命令,很适合新手入门

2010-03-26

空空如也

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

TA关注的人

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