- 博客(143)
- 资源 (11)
- 收藏
- 关注
原创 编辑距离
编辑距离1.编辑距离指两个字符串之间,有一个转成另一个所需要的最小编辑操作次数(增,删,改)2.分析首先定义这样一个函数——edit(i, j),它表示第一个字符串的长度为i的子串到第二个字符串的长度为j的子串的编辑距离。显然可以有如下动态规划公式:if i == 0 且 j == 0,edit(i, j) = 0if i == 0 且 j > 0,edit(i, j) =
2015-08-28 14:39:33
610
原创 gj杂记
一.一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全
2015-03-23 22:39:34
723
原创 python学习
一.python的类型:1.数字:int,long,float,complex(复数)2.字符串:两种取值顺序:从左到右索引默认0开始的,最大范围是字符串长度少1从右到左索引默认-1开始的,最大范围是字符串开头加号(+)是字符串连接运算符,星号(*)是重复操作print str[2:5](左取又不取)print a[-5:-2]3.列表:列表用[ ]
2014-12-21 15:42:49
1312
原创 直接插入排序、希尔排序
原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,最终将所有无序区元素都移动到有序区完成排序。
2014-10-26 21:23:53
740
原创 socket编程
1.客户端:#include #include #include #include #include #include #include #include int main(int argc, char *argv[]){ int server_sockfd;//服务器端套接字 int client_sockfd;//客户端套接字 int len; struct s
2014-10-19 19:51:41
510
原创 创建守护进程
创建守护进程:使进程在后台运行1.创建子进程父进程退出 为避免挂起控制终端将Daemon放入后台执行。方法是在进程中调用fork使父进程终止,让Daemon在子进程中后台执行。 pid=fork()之前,只有一个进程在执行这段代码,但在这条语句之后,就变成两个进程在执行了,这两个进程的几乎完全相同。 fork调用的一个奇妙之处就是它仅仅被调用一次,却能
2014-08-08 17:50:31
454
原创 pthread里面的锁
pthread中提供的锁有:pthread_mutex_t, pthread_spinlock_t, pthread_rwlock_t。 pthread_mutex_t是互斥锁,同一瞬间只能有一个线程能够获取锁,其他线程在等待获取锁的时候会进入休眠状态。因此pthread_mutex_t消耗的CPU资源很小,但是性能不高,因为会引起线程切换。 pthread_spinlock_
2014-07-31 00:15:26
939
原创 mongodb数据导入导出 备份恢复
一.数据导出mongoexport1.导出JSON格式的数据:[root@jcdd bin]# ./mongoexport-d test -c demo1 -o demo1.dat参数说明: -d 指明使用的库, -c 指明要导出的表, -o 指明要导出的文件名cat user.dat{ "_id" : {"$oid" : "53cc840de26223ff7838
2014-07-27 14:46:11
780
原创 mongodb学习1
Mongodb安装:1.解压到/usr/local目录mkdir dbmkdir logscd bin2.vi monbodb.conf fork: 表示是否以后台进程模式启动。 bind_ip: MongoDB 进程绑定的监听IP,默认为 localhost(127.0.0.1) port:: MongoD
2014-07-27 14:26:05
531
原创 vim使用技巧
1. 左右分割屏幕:vsplit fileCTRL-W h 跳转到左边的窗口CTRL-W l 跳转到右边的窗口2. 上下分割屏幕:split fileCTRL-W j 跳转到下面的窗口CTRL-W k 跳转到上面的窗口 CTRL-W w 命令可以用于在窗口间跳转。3. v 从光标当前位置开始,光标所经过的地方会被选中
2014-07-16 23:29:12
472
原创 c++程序性能优化学习
一.程序使用的内存区:1.全局/静态数据区2.常量数据区3.代码区4.栈:存储自动变量、局部变量、函数传递的参数值5.堆:动态分配的数据,new--delete,malloc--free 二.拷贝构造函数:1.默认拷贝函数不操作静态数据,默认拷贝函数执行的是浅拷贝(有指针时,需要深拷贝,自己写拷贝构造函数) CExample(const CExample& C);
2014-06-05 18:01:11
579
转载 c++拷贝构造函数
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。
2014-06-05 09:53:29
554
原创 boost_filesystem
#include#includeusing namespace std;using namespace boost::filesystem;int main() { path p ="/home/ganji/chenwei/aa"; if(exists(p)){ if(is_empty(p)) { boost::filesystem::remove(p
2014-06-03 17:50:06
817
原创 c++ 读写
#include#include#include>using namespace std;void readfile(){ //逐词读取 ifstream fp("data.txt"); string word; while(fp>>word) { cout<<word<<endl; } fp.close();}void readfile1() {
2014-05-27 17:59:54
502
原创 gtest学习
一.用 TEST() 宏声明测试函数 TEST(name1, name2){EXPECT_EQ(value1, value2);}name1:测试用例名称 类名 文件名name2:测试名称 方法名 函数名二.初始化 googletest 并运行所有测试int main(intargc,char** argv){::testing::InitG
2014-05-21 10:03:35
716
原创 Makefile学习
1. 1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符2. 建立一个简单的Makefilesrc=$(wildcard *.c./sub/*.c)dir=$(notdir $(src))obj=$(patsubst%.c,%.o,$(dir) )wildcard把 指定目录 ./ 和 ./sub/ 下
2014-05-20 22:50:34
478
原创 awk<文本分析、指定分隔符、显示指定域>
1.显示匹配行awk ‘$1 == 5’ file;2.显示指定域awk ‘/101/ {print $1,$2+10}’ file;显示匹配行的域3.管道获取数据df | awk ‘$4>10000’4.指定分隔符awk -F “@” ‘{print $3}’ file5.设置输出分隔符OFS=””awk ‘BEGIN{
2014-05-19 11:47:06
4216
原创 sed<替换、删除、查询、增加>
对每行处理,文本替换1.替换:s命令sed ‘s/jcdd/ganji/g’ file ;把文件file中出现jcdd的换出ganji.g标志在整行范围内把jcdd都替换为ganji。如果没有g标记,则只有每行第一个匹配的jcdd被替换成ganji。g换出Ng代表第N处开始出现的替换 sed -n ‘s/^jcdd/ganji/p’ file; (-n)选项和p标志一起使用
2014-05-19 11:46:11
6247
原创 seq<打印出一串有序的数字>
seq命令的作用就是打印出一串有序的数字三个选项:-f:指定格式format-s:指定分隔符,默认是回车-w:指定输出同宽,不能和-f一起用例1:seq -f “str%03g” 9 11str009str010str011例2:seq -w 98 100098099100例3:seq -s” “ -f”str%03g”
2014-05-19 11:45:25
625
原创 生产者消费者模型c++版本
mutex.h#ifndef _MUTEX_H_#define _MUTEX_H_#include#include"condition.h"class Mutex { public: friend class Condition; Mutex() { pthread_mutex_init(&pthread_mutex_, NULL);
2014-05-19 09:41:43
802
原创 shell——读取文件每一行
a),#使用read命令读取一行数据while read mylinedo echo "LINE:"$mylinedone b),#使用read命令读取一行数据cat datafile.txt | whileread mylinedo echo "LINE:"$mylinedone c),#读取一行数据cat data
2014-05-18 15:12:35
912
原创 shell——tar
tar命令 tar[-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思); -t :查看 tarfile 里面的文件!-x :解开一个压缩文件的参数指令! c/x/t 仅能存在一个!不可同时存在! -v :压缩的过程中显示文件!-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!-r
2014-05-18 14:25:04
1848
原创 Linux查看性能的基本命令
一.Toptop命令提供了实时的对系统处理器的状态监视,比如cpu、内存的使用。 前五行是系统整体的统计信息1.第一行是任务队列信息:同uptime执行结果:[root@jcdd ~]# uptime 11:10:39 up 5 days, 21:52, 4 users, load average: 0.00, 0.00, 0.00 11:
2014-05-16 15:18:15
1260
原创 shell和python中互调
一.在shell脚本中调用python脚本,执行结果给予赋值#!/bin/bash#在shell中掉用python脚本执行结果赋值给keykey=`python /usr/local/pythonstudy/print.py`a=$key#对key进行过滤b=`echo $key | awk -F\? '{print $3}'`echo $b
2014-05-16 10:27:34
1547
原创 url
#!/usr/bin/python#coding=utf-8import urllibprint '将赶集首页的html抓取到本地,保存在g.txt文件中,同时显示下载的进度。'def fun(blocknum , blocksize ,totalsize): percent = 100.0*blocknum*blocksize/totalsize if percent
2014-05-13 17:43:14
540
原创 usrpasswd
#!/usr/bin/pythondb = {}def newuser(): prompt='login desired: ' while True: name = raw_input(prompt) if db.has_key(name): prompt='name take, try another: '
2014-05-13 17:41:55
557
原创 queue stack
#!/usr/bin/pythonstack = []def pushit(): stack.append(raw_input('enter new string: ').strip())def popit(): if len(stack)==0: print 'cannot pop from an empty stack' else:
2014-05-13 17:40:35
506
原创 os os.path
#! /usr/bin/python#coding=utf-8import osusrdir = '/usr/local'os.chdir(usrdir)cwd = os.getcwd()print'***当前目录为: ',cwdprint '创建文件'os.mkdir('example')os.chdir('example')cwd=os.getcwd()print '
2014-05-13 17:38:28
782
原创 makefile write
#!/usr/bin/python'makeTextFile.py--create text file'import osls = os.linesep#get filenamewhile True: fname = raw_input("file name is :") if os.path.exists(fname):
2014-05-13 17:37:36
553
原创 thrift初步认识
1. thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。不同开发语言开发的服务可以通过该框架实现通信。2. thrift允许定义一个简单的定义文件中的数据类型和服务接口,以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。3. Thrift通过接口定义语言 (interface definition language,IDL
2014-05-04 10:26:15
611
原创 thrift_demo
student.thriftstruct Student { 1:i32 id, 2:string name, 3:i16 age,}service PutStudentInfoService { void put(1:Student s);}
2014-04-27 12:23:38
611
原创 thrift_demo_WhatTime
要求 :客户端(c++实现):问现在几点钟服务器(c++实现):现在是…1. 编写WhatTime.thriftnamespace cpp roctime service TimeService {i32 TellMeTime()}编译:thrift–gen cpp WhatTime.thrift在gen-cpp目录下会有如下文件:TimeService
2014-04-20 20:25:42
747
原创 同步,异步,阻塞,非阻塞
同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事异步: 异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后
2014-04-19 22:27:04
517
原创 生产者消费者模型
1. 生产者消费者问题(producer-consumer),有限缓冲,多线程同步。生产者线程和消费者线程共享固定大小缓冲区。2. 关键是保证生产者不会再缓冲区满时加入数据,消费者不会在缓冲区空时消耗数据。3. 解决办法:让生产者在缓冲区满时休眠,等下次消费者消耗缓冲区中的数据的时候,生产者才能被唤醒。同样,让消费者在缓冲区空时进入休眠,等到生产者生产数据后再唤醒。4
2014-04-17 17:30:03
629
原创 c++随机数
#include#include#includeusing namespace std;int main(){ int seed = time(NULL); srand(seed); int max,min; cout cin>>max>>min; int range=m
2014-04-09 14:53:12
542
原创 笔记本设置WIfi热点
笔记本怎么设置WIfi热点|浏览:704732|更新:2012-11-19 17:26|标签: wifi 1234567分步阅读随着手机的发展,流量的消耗也是大大地增加。虽然很多手机支持wifi,但是不加密或者知道密码的wifi热点却寥寥无几。笔记本的无线网卡
2014-04-08 22:32:12
663
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人