03 2013 档案

摘要:本文从三个层次分析最大公共子序列最大公共子序列长度最大公共子序列算法分析首先来个区别:单词"cnblogs"子序列:从单词中抽取字符,不能保证连续抽取。如”cn"、“cns"、”bgs"连续子序列:从单词中连续抽取字符。如“bolog"、”cnbl"最长公共子序列(LCS:Longest Common Subsequence)顾名思义,就是几个词语中最长的相同子序列。比如“cnblogs"和”belong"最大公共子序列是“blog" 最长公共子序列是个非常有用的算法,可以判断两段文字间的”雷同 阅读全文
posted @ 2013-03-31 21:24 jihite 阅读(4605) 评论(5) 推荐(2) 编辑
摘要:Linux操作系统认识的语言是二进制文件。具体的从编程到执行的过程是:首先利用高级语言(例如c语言)在文本编辑器(例如vim)写好源程序,再利用编译器(例如gcc)进行编译,再链接到已存在的函数库,最终产生可以执行的可执行文件。如图: 下面对c语言代码编译来逐步了解如何利用gcc编译程序1.单个程序#include<stdio.h>int main(){ printf("Hello World!"); return 0;}看看编译过程:可以指定可执行文件的名称。有两个参数重要的参数 -c——生成目标文件(.o文件) -o——生成可执行文件。看下面执行过程2.多个 阅读全文
posted @ 2013-03-27 08:55 jihite 阅读(805) 评论(2) 推荐(0) 编辑
摘要:Linux做最突出的地方之一是它的多用户、多任务环境。这一点的最重要的出发点就是安全机制。先看下例:场景:公司里有两个项目组:小组A和小组B。为了保密起见,小组内的进度、文档、程序都有小组内公开。比如小组A中,小组内的成员可以相互查看彼此的文件,但是小组内成 员都有自己的抽屉,里面有自己的隐私文件,不允许是看不了的(抽屉锁着)。小组B里的人相对于小组A来说是其他人。如果没进过小组成员的同意,是看不到A、B或C的资料的。这里边有个执掌大权的boss,他拥有无所不能的权利(包括查看用户的抽屉)。这就是Linux用户及用户组的现实写照。用户:A、B、C、甲、乙都是用户,就是主体用户组:有一个或多个用 阅读全文
posted @ 2013-03-26 23:56 jihite 阅读(2220) 评论(8) 推荐(7) 编辑
摘要:我们知道程序无非三种执行方式——顺序、条件、循环。顺序就是一条一条的执行,是一马平川;条件就是个十字路口,根据条件决定自己的走向;循环就是笨驴拉磨,一圈一圈的走,知道达到条件终止。现在集中shell中的循环执行。存在两个模式:while do done、until do donefor do donewhile do done、until do done模式基本语法:##while do done 不满足条件时会终止循环while [ 条件表达式 ]do 条件满足时可执行的命令done##until do done 满足条件是会终止循环until [ 条件表达式 ]do 条件不满足... 阅读全文
posted @ 2013-03-25 23:14 jihite 阅读(9266) 评论(0) 推荐(1) 编辑
摘要:我们知道程序无非三种执行方式——顺序、条件、循环。顺序就是一条一条的执行,是一马平川;条件就是个十字路口,根据条件决定自己的走向;循环就是笨驴拉磨,一圈一圈的走,知道达到条件终止。现在集中shell中的条件执行。存在两个模式:if...then...ficase...esacif...then...fi模式基本语法:if [ 条件表达式 ]; then 条件满足时可执行的命令fi例子:提示输入“Y"、“y"、“N"、“n".要是输入的“Y"或“y"则输出”Continue!";要是输入的“N"或“n"则输 阅读全文
posted @ 2013-03-25 22:16 jihite 阅读(1116) 评论(0) 推荐(0) 编辑
摘要:shell编程中有两种形式进行对判断条件进行测试:形式一:test形式二:[ ]举个小例子说明其用法及其注意事项:例子:判断文件 "new.txt" 是否存在,存在现实“exist', 不存在现实”not exitst"test -e new.txt && echo "exist" || echo "not exist" [ -e new.txt ] && echo "exist" || echo "not exist"执行结果: 实现细节说明: 阅读全文
posted @ 2013-03-25 21:15 jihite 阅读(2120) 评论(2) 推荐(0) 编辑
摘要:tr(translate的缩写)主要用于字符的删除与替换 语法:tr[-c/d/s/t] [SET1] [SET2] 参数:-c:(complement)用SET2中的字符替换SET1中没出现的字符 -d:(delete)删除SET1中的所有字符 -s:(sequence repreat)压缩SET 阅读全文
posted @ 2013-03-24 21:02 jihite 阅读(782) 评论(0) 推荐(0) 编辑
摘要:打开终端 Ctrl + Alt + T关闭终端 Ctrl + Shift + Q终止命令 Ctrl + c暂停屏幕输出 Ctrl + s继续屏幕输出 Ctrl + q在提示符下删除整个命令行 Ctrl + U 阅读全文
posted @ 2013-03-22 17:39 jihite 阅读(404) 评论(0) 推荐(0) 编辑
摘要:1.命令提示符格式只是个别用户该在“~/.profile”文件里改,要是所有用户都改在“/etc/profile”文件里改。在文件最下一行加入: export PS1='[\u@\h \W]$'其中: \u显示当前用户账号 \h显示当前主机名 \W显示当前路径(大写为相对路径、小写为绝对路径) $显示"$"符号 当然为了生效:source profile可以根据自己喜好删减。 更详尽解释见:http://blog.csdn.net/humorrat/article/details/5615167(注意"\"而非"/" 阅读全文
posted @ 2013-03-21 21:10 jihite 阅读(309) 评论(0) 推荐(0) 编辑
摘要:命令功能:touch命令经常用来创建空文件和更改文件的时间。创建新文件是为了作为程序运行的标记,程序执行完就删除了。而更新文件的时间通常是为了让某些软件能够正常运行。命令参数:-t(time):指定时间,格式为:[[yy]yy]MMDDhhmm[ss]-r(file):指定和file相同的时间示例说明:示例一:新建新文件 一开始查看new.txt文件的信息,提示没有new.txt。利用命令:“touch filename”建立了名为filename的文件。示例二:更改文件时间为当前文件 利用命令:“touch filename”可以把文件的时间当前的时间示例三:更改文件的时间为指定... 阅读全文
posted @ 2013-03-21 20:31 jihite 阅读(586) 评论(0) 推荐(0) 编辑
摘要:linux 下的vi 是一种文字编辑器,后来的升级版本是vim。vi 分为三种模式:一般模式、编辑模式、命令命令模式。它们之间的关系如下: 下面分类别解析命令: ``(注意是~那个键) 返回到光标刚才的位置 Ctrl + f 往下翻页(forward) Ctrl + b 往上翻页(backward) 阅读全文
posted @ 2013-03-19 22:35 jihite 阅读(1521) 评论(0) 推荐(1) 编辑
摘要:python编程时,经常和文件、目录打交道,这是就离不了os模块。os模块包含普遍的操作系统功能,与具体的平台无关。以下列举常用的命令 1. os.name——判断现在正在实用的平台,Windows 返回 ‘nt'; Linux 返回’posix' 2. os.getcwd()——得到当前工作的目录 阅读全文
posted @ 2013-03-18 12:27 jihite 阅读(107478) 评论(7) 推荐(7) 编辑
摘要:选择问题——在序列中按顺序找到某个元素。这可以用排序方法做到,即先排个序,在找到指定元素,但是这样就按最快的堆排序、合并排序啥的都得是O(nlgn)数量级的,这里采取的方法可以在期望为O(n)的时间内完成。具体的做法如同快速排序,因为快速排序最好情况时间也为O(nlogn),但是在实际情况下,遇到的代拍序列并不是最好的。因此,一种改进的方式是快速排序的随机化版本。利用随机化方式应用到该选择问题中,可以是程序期望在在线性时间内完成。具体的实现方式如下:int Select(int *A, int begin, int end, int i){ if(begin == end)... 阅读全文
posted @ 2013-03-05 23:49 jihite 阅读(3356) 评论(0) 推荐(0) 编辑
摘要:C/C++产生随机数用到两个函数rand() 和 srand()一. 不指定范围产生随机数 用到函数rand(),函数原型为int rand(),无参数。此时会产生一个介于0~RAND_MAX间的整数。RAND_MAX的大小可以查看,在include文件夹(linux在usr目录、windows在安装目录)的stdlib.h可以看到,linux下其值为2147483647(),其值与具体系统有关。参考代码:#include#includeint main(){ int i; for(i=0; i#include#define Random(x) (rand() %... 阅读全文
posted @ 2013-03-05 21:38 jihite 阅读(76618) 评论(5) 推荐(6) 编辑
摘要:可以采用以下方法在o(n)时间内选出最大值。图示: 代码:int Max(int *A, int arraysize){ int max = A[0], i; for(i=0; i<arraysize; i++) { if(max < A[i]) { max = A[i]; } } return max;}//总共比较 n-1次现在有两个问题: 1)如何同时找到最大值和最小值 2)如何找到最大的两个值解决方案:问题1) 方案... 阅读全文
posted @ 2013-03-03 21:35 jihite 阅读(1924) 评论(1) 推荐(1) 编辑
摘要:为说明思想,假设队列、栈都很大,不会出现满的情况。1. 两个栈实现队列//前提已知:struct Stack{ int top; //栈顶指针 int stacksize;//栈的大小 int *s; //栈底指针};void InitStack(Stack *s... 阅读全文
posted @ 2013-03-02 09:41 jihite 阅读(57617) 评论(19) 推荐(15) 编辑

点击右上角即可分享
微信分享提示