游骑兵打先锋的专栏

rangers,lead the way!

windows与linux换行符问题

<br />在Linux下的换行是/n,而在Windows下的换行是/r/n。不经过处理的话,两者的文件在显示的时候会出现问题,比如一个Linux的文本文件 用Windows记事本打开的时候不会换行格式很乱,一个Windows文件在Linux下用VI打开的话会出现^M字符<br...

2011-04-19 23:30:00

阅读数 1112

评论数 0

java正则表达式

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

2011-04-04 12:38:07

阅读数 8

评论数 0

Linux内核链表(二)

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

2011-04-01 22:06:43

阅读数 8

评论数 0

Linux内核链表

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

2011-04-01 17:28:24

阅读数 7

评论数 0

编写第一个内核模块

    内核模块是Linux内核向外部提供的一个接口,其全称是 动态可加载内核模块(Loadabkle Kernel Module,LKM)。 Linux 内核之所以提供模块机制,是因为它本身是一个单内核( monolithic kernel )。单内核的最大优点是效率高...

2011-03-30 20:07:18

阅读数 8

评论数 0

求组合数

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

2011-03-26 20:23:07

阅读数 34

评论数 0

结构体的初始化

定义一个结构体: #define LENGTH 256 struct book { char title[LENGTH]; char author[LENGTH]; float value; };     初始化方法:   (1)使用一个花括号括起来、逗号分...

2011-03-19 23:29:28

阅读数 10

评论数 0

访问XHTML元素

为了动态修改XHTML元素,必须能访问XHTML元素,DOM提供了2种方式来访问XHTML元素: --  根据id访问 --  利用节点关系访问 (1)根据ID访问XHTML元素 document.getElementByID(idVal) : 返回文档中id属性值为idVal的XHTML...

2011-03-13 09:59:31

阅读数 13

评论数 0

背包问题

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

2010-12-14 18:27:51

阅读数 7

评论数 0

0-1背包问题

0-1背包问题: 给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的总容量为c。 问:应该如何选择装入背包的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两种选择,即装入背包或不装入背包,因此该问题称为0-1背包问题。   该问题的形式化描述...

2010-12-14 18:00:13

阅读数 24

评论数 0

装载问题

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

2010-12-12 18:16:05

阅读数 17

评论数 0

最优装载问题

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

2010-12-12 11:13:16

阅读数 55

评论数 0

C 标准库qsort函数的使用

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

2010-11-30 20:02:24

阅读数 16

评论数 0

喝汽水问题

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

2010-11-28 21:51:03

阅读数 32

评论数 0

最大子段和(三)

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

2010-11-21 10:04:31

阅读数 13

评论数 0

最大子段和(二)

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

2010-11-20 19:15:53

阅读数 12

评论数 0

最大子段和(一)

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

2010-11-20 10:31:48

阅读数 13

评论数 0

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

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

2010-11-18 22:33:56

阅读数 22

评论数 0

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

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

2010-11-18 14:25:09

阅读数 11

评论数 0

矩阵连乘问题

/* description: * * 动态规划算法之矩阵连乘问题 * 1)矩阵Ai*Ai+1*...*Aj简记为A[i:j],所需的最小计算次数为m[i][j]. * 2)当i=j时,m[i][j] = 0 * 3)当 i&amp;lt;j时,假设使m[i][j]最小...

2010-11-16 21:39:27

阅读数 18

评论数 0

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