从事互联网开发工作,写博客,记录问题与学习支持,并分析
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -n∶使用安静(silent)模式。
转自:http://blog.csdn.net/zinss26914/article/details/8939140 问题 输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba 思路 1.
1.第K顺序统计量概念 在一个由n个元素组成的集合中,第k个顺序统计量是该集合中第k小的元素。例如,最小值是第1顺序统计量,最大值是第n顺序统计量。 2.求Top K元素与求第K顺序统计量不同 Top K元素:是指求数组中的最大(或者最小的)K个元素,一般K比较小,采用最大(或者最小)堆实现。
1.概念 编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括:(1)将一个字符替换成另一个字符,(2)插入一个字符,(3)删除一个字符。 相似度,等于“编辑距离+1”的倒数。
由于写论文要将“哈密顿回路问题(TSP)”的求解中间结果表示出来,查了一下使用程序画多边形图形。现在在总结一下,这个图是“由给定节点首尾相连的”闭合多边形。 1.使用matlab作闭合多边形图 没有找到直接画多边形的函数,只能是将各个点的坐标保存在数组中,将一个点与其相邻的点相连,并将最后一个点与第一个点连接。
排序算法,基本的高级语言都有一些提供。C语言有qsort()函数,C++有sort()函数,java语言有Arrays类(不是Array)。用这些排序时,都可以写自己的排序规则。 Java API对Arrays类的说明是:此类包含用来操作数组(比如排序和搜索)的各种方法。
感觉好久没有写排序程序了,C语言有qsort()函数,C++有sort()函数,java语言有Arrays类(主要这个不是Array)。今天写了一下归并排序还有点费劲呀。晚上回来写写。 归并排序就是采用分治法进行排序: (1)将一个数组分成小的2个数组分别进行排序; (2)之后...
原文:http://blog.csdn.net/ggggqqqqihc/article/details/1727020 标准库里的count_if可以统计容器中满足特定条件的元素的个数。例如要统计一个整数vector——ivec中正数的个数,可以先写一个返回类型为bool,含有一个int参数的条件函数: bool pred(int val){ return val>0; } 之后可以用count_if(ivec.begin(),ivec.end(),pred)计算出正整数的个数。
在编写多线程程序时,最重要的就是搞清楚哪些变量是共享的,哪些变量是不共享的。也就是要分析清楚其中的原理呀。 因为最近要使用多线程就看了一些,对使用Thread类的子类创建线程的情况,总结如下: 1.方法体内部定义的局部变量不共享 这是因为方法内部定义的变量是在运行时动态生成的。
今天一个同学读取List中的一个对象,直接用于输出。输出结果是Student@c17164,现在来分析一下哈。 1.Object类 类Object是类层次结构的根类。每个类都使用Object作为超类。
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。
1.引入 1.1如下面的代码,定义了三个变量,int,char,int,并输出他们的十六进制的内存地址。 #include int main() { int a; char b; int c; printf("a:%x b:%x c:%x\n",&a,&b,&c); //输出: a:22ff1c b:22ff1b c:22ff14 return 1; } 1.2图示分析上述代码 代码中为定义的变量a,b,c分配了内存单元,分配内存单元是从大地址开始分配的,可见a的内存地址大于b的地址。
1.引入 计算机的字长一直在增长,从4位开始,经过8、16、32、64位,以后可能还会有更多的位出现。现在的计算机还都是以字节(即8个bit位)作为地址编址单元。 编程语言中有许多内置的数据类型,有整型,浮点型等。
(1)一般使用的数据库中都会保存用户名和密码,其中密码不使用明码保存。 有时候用MD5密码,很多语言都提供了将字符串生成为MD5密码的方法或函数。MD5的加密算法是公开的。 有时候也可以用自己的字符串加密算法,这种加密算法是只有自己知道的。
最近跟着师兄们做个项目,我的任务就是负责做个“全文检索”的小模块。用到了Lucene的索引,下面的是其中的用Lucene实现在索引的一个字段(比如文章内容字段)进行查找多个关键字的实例代码。 1.Lucene说明 Lucene是非常优秀的成熟的开源的免费的纯java语言的全文索引检索工具包。
最近做网页用到了折叠菜单,在网上搜索了一番后还不错,现在放到自己的博客中。 参考网页:http://www.blueidea.com/tech/web/2006/3824.asp 具体demo下载:http://www.blueidea.com/articleimg/2006/07/3824/demo.zip 下面是自己改的一个折叠菜单,导入三个js文件就可以执行啦。
现代信息时代,到处都是信息化,数字化。有的信息是天生的数字的,比如个数,1,2,3,4等;有些信息本身是非数字化的,比如声音,因此就有了“A/D”转换,将模拟信息数字化。 以前知道XML,最近做网页用到了。
以前看过书上说,XML是web service间传输信息的标准格式吧,就看了看XML。最近在做个网站,又说是有了JSON,第一回听说就看了看,总结总结一下。 1.JSON介绍 JSON比XML简单,主要体现在传输相同信息的情况下,文件的大小不同。
SSH做网页,有时候修改了javascript的代码,执行没有生效啊。最后用“IE浏览器自带的调试网页功能"发现还是javascript的问题。 1.查找问题的方法: 1.如果改了配置文件。执行的时候,一定要重启Tomcat服务器。
在做网页时,经常需要根据用户输入信息,进行“局部页面的刷新”也就是要使用所谓的AJAX技术。最近正好也在用,就总结一下。 1.AJAX介绍 AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。
今天写个网页,想在页面加载onLoad时,动态显示由后台其他程序传来的数据时,用document.getElementById获取控件对象总是为空。但是检查了这个id确实是存在的。在网上查阅一番后才知道了其中的原因。
最近学习用SSH做网页,遇到了文件上传的一些知识,下面就总结总结。 1.下面是一个文件上传的JSP页面 其中,表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。
共享内存是系统出于多个进程之间通讯的考虑,而预留的的一块内存区。在/proc/sys/kernel/目录下,记录着共享内存的一些限制,如一 个共享内存区的最大字节数shmmax,系统范围内最大共享内存区标识符数shmmni等,可以手工对其调整,但不推荐这样做。
更多参考:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html 在 Vim 中可以很方便的根据不同的文件类型来设置使用 tab 制表符或者空格,还可以设置长度,非常灵活。
在网上看了一些关于java中的RandomAccessFile类的介绍,又经过查看Java API和自己编的测试程序,总算是对RandomAccessFile的使用有了一定的了解。自己做了以下比较详细的总结吧。
编程实践中经常需要对文件的读写,本篇文章做一个文件追加写的模块。 使用FileWriter类 (1)使用的构造函数为(参考JAVA API文档): public FileWriter(String fileName,boolean append) throws IOException (2)参数说明 fileName(String):要写入数据的文件名称。
1.在编程中,我们可以使用JavaMail来进行邮件传输。 我们可以在自己的电脑上安装安装邮件服务器apache-james-2.3.2,或者直接使用门户网站的邮件服务器来进行邮件传输。 本篇讲述使用门户网站的邮件服务器,用java程序来进行邮件传输。
在编程的过程中,经常会用到对文件的读写操作等。比如,找出某一个文件夹下的所有文件名等。 下面的程序给出了,获取某一给定文件夹下所有文件的绝对路径的程序。可以作为某一个模块,在需要的时候直接使用。 package src; import java.
本文转自:http://zzx0421.iteye.com/blog/284022 元素中可以包含多个和子元素,他们分别配置局部异常处理和局部转发。attribute设置Action关联的ActionForm在request或者session范围内的key,就是在request或者session共享内的名称。
本文转自:http://blog.csdn.net/physicsdandan/article/details/8076446 gdb的使用介绍 先创建一个如下的C程序,minimal.c int main() { int i = 1337; return0; } 这个程序不做任何事情并且没有一个printf语句。
1.概述 在编程的过程中总会需要使用系统调用,如linux下的ps,touch,rm,grep命令等;windows下的dir,mkdir,del命令等。 在linux中执行系统调用,通常使用标准流管道。
最近在看进程间的通信,下面说说管道通信之无名管道。 1.概述 管道是Linux中很重要的一种通信方式,他是把一个程序的输出直接连接到另一个程序的输入,并且管道具有队列的特性。如Linux命令,“ps -ef | grep root”。
最近在看进程间的通信,看到了fork()函数,虽然以前用过,这次经过思考加深了理解。现总结如下: 1.函数本身 (1)头文件 #include #include (2)函数原型 pid_t fork( void); (pid_t 是一个宏定义,其实质是int 被定义在#include中) 返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1 (3)函数说明 一个现有进程可以调用fork函数创建一个新进程。
在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
今天去面试,一位面试官提到了内存管理的伙伴系统,当时就懵了,因为根本就没有听说过。晚上回来在实验室查了一些资料,现总结如下: 1.伙伴系统概念 伙伴系统是一种经典的内存管理方法。Linux伙伴系统的引入为内核提供了一种用于分配一组连续的页而建立的一种高效的分配策略,并有效的解决了外碎片问题。
1.网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。
问题描述:有N(N>>10000)个整数,求出其中的前K个最大的数。(称作Top k或者Top 10) 问题分析:由于(1)输入的大量数据;(2)只要前K个,对整个输入数据的保存和排序是相当的不可取的。
在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主。下面给出用java写入数据到excel表格方法: 1.添加jar文件 java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。
在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主。下面给出用java读取excel表格方法: 1.添加jar文件 java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。
在做编程题目的时候经常会遇到“斐波那契数列”相关的题目,尤其在做OJ中。下面说一些方法: (一)递归 递归是最慢的会发生重复计算,时间复杂度成指数级。 long long fac(int n) { if(n==1) return 1; else if(n==2) return 2; else return fac(n-1)+fac(n-2); } (二)循环 利用临时变量来保存中间的计算过程,加快运算。
物件捆绑背包问题:给定N元钱,要购买一些器件。器件有主件和附件之分,也即主件可以单独购买,然而购买附件必须购买对应的主件。下表就是一些主件与附件的例子: 主件 附件 电脑 打印机、扫描仪 书柜 图书 书桌 台灯 工作椅 无 把每件物品规定一个重要度,分为5等:用整数1~5表示,第5等最重要。
砝码称重问题:设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其质量> syms x; >> f1=(1+x); >> f2=(1+x^2+x^4); >> f3=(1+x^3+x^6); >> f4=(1+x^20); >> expand(f1*f2*f3*f4)>>ans...
在做OJ题目的时候,经常会用到字符串的处理。例如,比较二个字符串相似度。这篇文章介绍一下求两个字符串的最长公共子序列。 一个字符串的子序列,是指从该字符串中去掉任意多个字符后剩下的字符在不改变顺序的情况下组成的新字符串。
在linux下添加用户的命令有 adduser与useradd ,这两个命令有些不同 。下面结合批量添加用户来说明。 一.adduser批量添加用户 使用adduser时,创建用户的过程更像是一种人机对话,系统会提示你输入各种信息,然后会根据这些信息帮你创建新用户。