自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (28)
  • 收藏
  • 关注

转载 Ubuntu 中软件的安装、卸载以及查看的方法总结

一、Ubuntu中软件安装方法1、APT方式(1)普通安装:apt-get install softname1 softname2 …;(2)修复安装:apt-get -f install softname1 softname2... ;(-f Atemp to correct broken dependencies)(3)重新安装:apt-get --reinst

2012-09-06 11:46:13 562

原创 Linux core文件详解

1、什么是linux core文件在一个程序崩溃是,它一般会在特定目录(一般是当前目录下)生成一个core文件。core文件仅仅是一个内存映像(同时加上调试信息),主要用来程序调试。有人可能要问了,gdb不是可以直接调试吗?“加上断点,想怎么调怎么调”。这话倒是不错,但是假如有个几万行的代码,只给出一个segment fault错误,怎么调?不能进去一行一行的调试吧。core文件就能很好的

2012-06-23 16:27:49 2893

原创 文件特殊访问权限:SUID,SGID,SBIT

一般来讲unix/linux文件的权限是三个用户(owner,group,others),都是rwx,这是大家比较熟悉的,其实还有三个特殊的权限,SUID,SGID,SBIT三个,先看一下,怎么权限位中会出现t和s呢?详解如下:一 SetUID:当s这个标志出现在文件所有者的x权限上时,如上图/usr/bin/passwd 的权限状态”rwsr-xr-x”,此时就称为Set UID,简

2012-06-23 16:05:08 1041

原创 ls 命令详解

除了ls -l和ls -a 之外你还知道那些参数。其实ls远不止这些。ls   [-aAdfFhilnrRSt]  目录名参数:-a:全部的文件,连同隐藏文件;-A:列出全部文件(连同隐藏文件,但不包括.与..这两个目录);-d:仅列出目录本身,而不是列出目录内的文件数据-f:直接列出结果,而不进行排序(ls默认会以文件名排序)-F:根据文件,目录等信息给予附加数据结构,例如:

2012-06-14 21:58:36 1456

转载 mysql拷贝表的几种方式

mysql拷贝表操作我们会常常用到,下面就为您详细介绍几种mysql拷贝表的方式,希望对您学习mysql拷贝表方面能够有所帮助。假如我们有以下这样一个表:id      username    password ----------------------------------- 1       admin       ************* 2       sa

2012-06-13 16:52:50 1155

原创 MySQL limit用法

limit用法: SELECT * FROM tablename LIMIT [offset,] rows | rows OFFSET offset举例:SELECT * FROM tablename LIMIT 5,10 //返回6-15行记录SELECT * FROM tablename 5 //返回1-5行相当于:SELECT * FROM tablen

2012-06-08 22:05:20 3211

原创 Python 脚本清屏命令

import osos.system('clear')

2012-06-08 20:26:03 2873

原创 ulimit 和 free 命令详解

ulimit 是一种 linux 系统的内键功能,它具有一套参数集,用于为由它生成的 shell 进程及其子进程的资源使用设置限制。ulimit 命令的格式为:ulimit [options] [limit] 1. ulimit 参数说明选项 [options]含义例子-H设置硬资源限制,一旦设置不能增加。ulimit

2012-06-05 00:52:16 834

原创 求集合的幂集

集合的幂集A = { 1, 2, 3}, 则A的幂集为:{{1, 2, 3}, {1, 2}, {1, 3}, {2, 3} ,{ 2} ,{3} ,Φ}。对于求A集合的幂集,A中的元素它只有两中状态,它或属于幂集的元素集,或者不属于幂集的元素集。求幂集的过程可以看成是对A中元素进行“取”或“舍”的过程。状态树如下:叶子节点表示终结状态,而第i层的分支节点,则表示已对集合A中前i-1个元素进行了取

2012-06-03 01:42:55 7008 1

原创 全排列算法递归实现

全排列算法有很多中实现算法,最简单的递归实现,还有字典排序实现(没太看明白)。下面主要说一下递归实现。假设求 array = { 1, 2, 3, 4, 5}的全排列,输出依次是1{2,3,4}      2{1 ,3,4}     3{ 1, 2, 4}   4{ 1, 2, 3}对于{ 2, 3, 4}  : 2{ 3, 4}    3{ 2, 4}     4 { 2, 3}对于

2012-06-03 00:19:18 1055

原创 KMP算法详解

字符串经典的匹配算法,时间算法复杂度为(n+m)。说到kmp算法不得不提朴素的字符串匹配算法,在朴素字符串匹配算法中,每次当匹配不相等时就回溯到开始匹配字符串的下一个字符,重新开始匹配。这种算法的时间复杂度为(n*m)。kmp算法之所有能够将时间复杂度将为(n+m),是因为kmp算法不是每次都回溯到字符串开始匹配的位置下一个位置重新开始匹配,而是利用前面匹配的信息,进行

2012-06-02 23:57:57 923

转载 PS 命令详解

linux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放) 5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIG

2012-05-31 23:17:55 727

转载 netstat 命令详解

Netstat :命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行netstat后,其输出结果为Active Internet connections (w/o servers)Proto Recv-Q S

2012-05-31 22:40:36 564

原创 UNIX 网络编程学习(二)I/O模型

UNIX下有五种I/O模型阻塞I/O模型非阻塞I/O模型I/O复用(select和poll)信号驱动I/O异步I/O第1种:阻塞I/O模型请求的I/O操作阻塞进程,直到I/O操作完成。如下图:第2种:非阻塞I/O模型当请求I/O操作非得让进程阻塞不能完成时,不让进程阻塞,而应返回一个错误。如下图:第3种:I/O复用模型调用select或poll,在这

2012-05-31 13:43:52 953

原创 UNIX 网络编程学习(一) TCP连接的建立和终止

TCP建立连接,三路握手:服务器必须准备好接受外来的连接。这通过调用socket、bind和listen函数来完成,称为被动打开;客户通过调用connect进行主动打开。这引起客户TCP发送一个SYN分节,它告诉服务器客户将在连接数据中发送的数据的初始序列号;服务器必须确认客户的SYN,同时自己也得发送一个SYN分节,它含有服务器将在同一个连接中发送的数据的初始序列号。服务器以单个分节发送

2012-05-31 13:40:50 1127

原创 最长递增子序列

这是微软实习生笔试遇到的,题意:求一个数组中最长递增子序列的长度。要求选择该题最好算法的时间复杂度和空间复杂度。答案:时间复杂度O(NlgN),空间复杂度O(N)。这题明显用动态规划来解。假设在目标数组array[ ]的前i个元素中,以array[i]元素为最大元素的递增子序列的长度是LIS[i]。那么递归求解表达式为:LIS[i+1] = max{1, LIS[k] + 1}, ar

2012-05-31 10:51:44 1969

原创 c程序是如何启动和终止

c程序如何启动:当内核执行C程序时(使用exec函数),在调用main函数之前调用一个特殊的启动例程。可执行文件将此启动例程指定为程序的起始地址---这是由连接编辑器设置的,而连接编辑器由c的编译器调用。同时,启动例程从内核取得命令行参数和环境变量。进程的终止总共有8种方式使进程终止,其中前5种正常,后3种不正常。从main返回。在这种方式中,main函数返回后立即调用

2012-05-30 20:49:06 3021 1

转载 使用 GDB 调试多进程程序

GDB 是 linux 系统上常用的 c/c++ 调试工具,功能十分强大。对于较为复杂的系统,比如多进程系统,如何使用 GDB 调试呢?考虑下面这个三进程系统:进程 Proc2 是 Proc1 的子进程,Proc3 又是 Proc2 的子进程。如何使用 GDB 调试 proc2 或者 proc3 呢?实际上,GDB 没有对多进程程序调试提供直接支持。例如,使用GDB调试

2012-05-30 15:31:07 470

原创 建造者模式

建造者模式(Builder):建一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式主要用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临复杂的变化。都将建造者模式与装饰模式比较,一个是过程固定内容不同的建造,一个是动态的装饰。这两个模式放在一起比较,是因为它们两个明显的不同,一个过程固定,一个动态变化。个人觉得还有

2012-05-29 19:24:05 494

原创 装饰模式

装饰模式(Decorator):动态的给一个对象添加一些额外的职责。感觉这个模式可以和策略模式相比较一下,策略模式是动态灵活的改变不同的算法(由类中的setComponent(strategyX)),而装饰模式呢,setComponent(componentX);可以看出装饰模式是装饰的同类对象,大家都是继承相同的基类,实现某个相同的方法,在这个方法中,实现自己特有的操作,同时调用compoe

2012-05-29 16:17:07 423

原创 strcpy的源码

对于c/c++面试很多都会问到这个题,3月中旬去搜狗的时候也碰到这个题。char *strcpy(char *dest, const char *source){ assert(dest || source); char *p = dest; while ((*p++ = *source++) != '\0') ; return dest;}

2012-05-29 09:54:05 552

原创 IP转换为32位无符号数(即,inet_aton函数)

上周跟着宿舍一哥们去海豚浏览器霸面,问我的题比较简单,二分查找的;当时莫名其妙的紧张了,答的不好,被鄙视了。不过问宿舍哥们的题是IP转换成无符号32位整数,当时我感觉这个好像很熟悉的,就是想不起来。现在正好看网络编程,都清楚了。在unix网络编程中,IP地址有两种表示方法,一种是:字符串“192.168.101.25”;另一种是:与字符串对应的32位无符号数;       unix网络编程

2012-05-29 01:33:39 5693

原创 unix网络编程常用函数详解

基本TCP客户-服务器程序的套接口函数如下图:1、socket函数原型:#includeint socket(int family, int type, int protocol); 返回值:非负描述符--成功, -1--出错;作用:指定期望的通信协议接口(TCP或UDP或unix域字节协议等)family 指明协议簇族解释AF_INET

2012-05-29 00:03:56 1086

原创 字节排序问题

一个16位整数,它由两个字节组成。内存中存储这两个字节有两种方法:        1   将低字节放在低地址,这称为小端字节序(little-endian);        2  将高字节放在低地址,这种称为大端字节序(big-endian);下面是一段检查计算机是大端还是小端的程序:#includeint main(){ union{ short

2012-05-28 20:23:52 911

原创 链表归并排序

主要思路:               1   如果为NULL或者只有一个节点那么直接返回;               2    将链表分成两部分,分别进行排序,形成两个有序链表;               3   将两个有序链表合并;void merge_sort(struct Node **list){ struct Node *p = *list; st

2012-05-27 23:08:54 580

原创 单链表转置

单链表转置都很熟里,这里只是练一下链表操作,另外还有几点需要注意,如果是递归解决该问题呢,如果是相邻两个转置有怎么处理。1. 单链表转置非递归void reverse(struct Node **list){ struct Node *currentp = *list; struct Node *pleft = NULL; struct Node *pright = NULL;

2012-05-27 17:56:26 7091

原创 二分查找的应用

二分查找都很熟悉了,对于有序的数组来说,对齐进行处理基本都是二分查找。下面来看几个应用:1、N+1个数,放在长度为N的数组里面且元素有序,元素从0-N+1,且没有重复,求出缺少哪一个元素。例如:array【10】 = {0,1,2,3,5,6,7,8,9,10}利用二分查找思路:如果元素与其索引相等,那么继续向后寻找(即low = mid + 1),如果元素与其索引不相等那么向前找(即

2012-05-23 20:14:00 1089

原创 二叉查找树转为双向链表

对于二叉查找树本能的想到了中序遍历,中序遍历二叉树的结果是有序的,只要使用非递归中序遍历,中间稍作修改应该就可以。这个是第一反应,觉得应该不难。        不过还是,网上搜索一下,在网易何海涛的技术博客中看到,关于递归的解法。这个方法虽然有些耗资源,但是我觉得第一个 想到的应该是这一个,应为二叉树本来就是递归结构,二叉树很多问题的解决都是从递归入手。下面还是梳理一下这两个思路:1、

2012-05-23 14:56:26 798

原创 二叉树 层次遍历

二叉树按层次遍历,要求在不同的层次之间输出空行。template void Tree::level() const { queue*> q; Node *p = root; if (p != 0) { q.push(p); q.push(0); } while (!q.empty()) { p = q.front(); q.pop(); if (p != 0)

2012-05-23 09:27:34 597

原创 c++ 实现队列

主要是想联系一下c++中的模板怎么使用,随便复习一下队列。队列最基本的数据结构元素先进先出,这些就不多说了。注意:写程序时copy构造函数和copy赋值函数的写法。#include#includeusing namespace std;templateclass QueueItem{public : QueueItem() {} QueueItem(const T

2012-05-22 19:55:33 491

原创 c++ 实现策略模式

策略模式(Strategy):它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。上面是《大话设计模式》中给出的定义,感觉这个概念给的不好,看了之后不能完全清晰明白该模式(可能自己水平太水的原因吧)。在《effective c++》中指出,策略模式是virtual 函数的替换方法。仔细想想也差不多。如果想在不同的类中实现不同的算法,那么在基类中

2012-05-19 23:09:32 1366

原创 c++ 实现模板方法模式

模板方法模式(Template Method):定义一个操作中的算法的骨架,而将一些方法实现延迟到子类。模板方法使得子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤。         通俗一点讲,假设一个类或者算法实现需要调用函数f1、f2、f3,调用的顺序确定,为f1,f2,f3,但是对于不同的类,不同的算法,f1、f2、f3的实现过程会有不同;那么模板方法怎么解决问题的呢?

2012-05-19 19:31:36 1039 1

原创 c++ 实现工厂模式

工厂模式大家都很熟悉了,就是利用多态,利用基类指针指向新生成的派生类,用该指针调用派生类的函数。今天看《effective c++》写代码主要是练习一下,代码中类实现没有考虑太多的构造函数及虚构函数,各位见谅。       #include#includeusing namespace std;class Operation{public: void setNumA

2012-05-19 16:07:06 776

原创 堆排序

堆排序大家都很熟悉,原理我也不讲了,需要注意的一点是对排序是不稳定。直接上代码了。       void heapify(int array[], int len, int i){ int j = i*2 + 1; int temp = array[i]; while (j < len ) { if ((j+1) array[j]) j++; if (array

2012-05-08 00:24:02 327

原创 链表快速排序

快速排序大家都很熟悉了,实现的时候都是用的数组,但是有没有想过链表进行快速排序呢(当然还有链表归并排序,可以想一下链表能不能堆排序,这个下篇文章再说);我第一次听说链表快速排序是去年听师兄说的,当时他去百度面试,直接就要求写链表的快速排序,当时也没往心里去,现在有时间了,写了一下。      typedef struct Node { int data; struct Node

2012-05-07 23:21:32 582

原创 快速排序

算法导论前面几章看来好几遍了,每次都是快速排序、归并排序、堆排序及计数排序等,每次到时都能写一遍,但是时间一长还是有些遗忘,现在为了督促自己,写几篇博客吧,把几种排序算法写一下。注意一下,快速排序与对排序是不稳定的,而归并排序与计数排序是稳定的。下面先看看快速排序的c代码实现。        #includeint partition(int array[], int p, int

2012-05-07 22:44:11 583

原创 基数排序的java实现

前几天师兄问我基数排序怎么实现,原理我很清楚啊,就给他说了,但是当他详细问道用具体的计数排序怎样实现时,我尽然没有详细的实现思路。今天有空就把它实现了。不懂理论不行,但是光知道一点理论知识,不去动手实践是不行的,以后还是要多思,多做。       详细代码如下:package c

2011-07-17 14:16:35 6181 3

原创 java实现二叉树

前几天有人问我二叉树的后序非递归遍历怎么实现,一时没想起来,今天有时间,就把二叉树的相关操作都写了一下,包括创建,中序、先序、后序(递归和非递归),其中重点的是java在先序创建二叉树和后序非递归遍历的的实现。     下面是实现的具体代码,输入是工程目录下input.txt,文

2011-07-16 23:07:32 23840 9

原创 eclipse、myeclipse 打开当前文件所在文件夹的方法

遇到这个问题n多次了,每次都得google,这次还是写下来吧,生的下次在乱找。网上说的方法主要有两种,一种是装一个插件,一种是修改设置。后一种比较简单实用,直接说第二种了。在run-->External Tools ---> External Tools Configuratio

2011-07-16 20:20:27 9280

原创 java实现红黑树

红黑树是一种经典的数据结构,在linux内存管理、nginx 等很多地方用到它。主要操作包括插入、删除,其中插入6种情况,删除8种情况,详细的思路就不说了,如果不太明白的请参考算法导论13章,看的时候一定要把每一种插入、删除的情况在纸上自己画出来,这样会节省你很多时间。下面是ja

2011-07-16 16:52:51 8053 8

pthread windows的库

该文件是pthread windows平台的库函数,要再windows平台使用pthread多线程,需要加载该库

2011-09-03

SWT 技术帮助文档

SWT 的原版技术文档,java swt界面开发必备

2011-08-25

cglib-2.2.2.jar

cglib开发架包,cglib开发架包,cglib开发架包,cglib开发架包,

2011-07-23

《maven 权威指南》 中文版

《maven 权威指南》 中文版,一本介绍maven的权威书籍,书很好。

2011-07-18

Nginx HTTP Server 2010.pdf

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。 Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集 、示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx, 如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。 新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx

2011-07-06

nginx 性能优化

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。 Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集 、示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx, 如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。 新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署nginx

2011-07-06

Nginx+常见应用技术指南[Nginx+Tips]+第二版.pdf

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。 Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集 、示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx, 如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。 新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx

2011-07-06

nginx 源码分析

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。 Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集 、示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx, 如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。 新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx

2011-07-06

jstl.jar jstl 架包

jstl.jar jstl 架包 jstl.jar jstl 架包 jstl.jar jstl 架包

2011-07-01

standard.jar j2ee 架包

standard.jar j2ee 架包 standard.jar j2ee 架包 standard.jar j2ee 架包

2011-07-01

java 连接 mysql 驱动包

java 连接 mysql 驱动包 java 连接 mysql 驱动包 java 连接 mysql 驱动包

2011-07-01

Spring 2.0 jar 包

Spring 2.0 jar 包 Spring 2.0 jar 包 Spring 2.0 jar 包 Spring 2.0 jar 包 Spring 2.0 jar 包

2011-07-01

自己动手写操作系统第二版

一本介绍操作系统的不错教程,让你从从做系统的启动到运行,以及文件系统详细彻底的了解操作系统。

2011-06-07

高级bash脚本编程指南

较少linux bash shell 脚本编程的不错教程,这是一本高级教程,适合于有一定shell脚本编程基础的人。

2011-06-06

TCP/IP 协议详解 第1卷

TCP/IP 协议详解 第1卷 是讲解TCP/IP协议的经典教程,想学好网络的应该好好看一下,

2011-06-06

扩展欧几里德算法的理解

本文主要讲解了,扩展欧几里德算法的理解,讲得很清楚,很全面。

2011-03-02

算法导论主要算法的实现和课后题答案

算法导论第二版中主要算法的实现以及课后习题的答案,很全面,不错。

2011-03-02

软件架构设计教程全书

很全的软件架构设计教程,架构师必看的书。

2011-03-01

基于lucene的网络新闻搜索引擎的设计与实现

java实现的基于lucene的网络新闻搜索引擎的设计与实现,java搜索引擎的很好例子。

2011-03-01

java Miaglayout 的包 miglayout-3.7-swing.jar

java Miaglayout布局管理器所用到的的包 miglayout-3.7-swing.jar

2010-12-10

java MigLayout 帮助文档

java 最新的Miglayout布局的帮助文档,有讲解,和介个简单的例子

2010-12-10

dwr3.0 配置文件

dwr3.0的web.xml的配置文件,该文件是从dwr.jar文件中拷贝出来的

2010-06-08

dwr3.0.jar

dwr所使用最新的架包,官方网站下载,已经使用过用过,可用

2010-06-08

java swt 教程

这是关于讲解java swt 界面编程的教程,swt是eclipse出的java界面编程包,很好用

2010-04-21

Ubuntu 从入门到精通

这是一本关于Ubuntu的从入门到精通的书,讲的很基础,很好

2009-06-11

空空如也

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

TA关注的人

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