- 博客(78)
- 收藏
- 关注
转载 linux 锁类型
转载自:http://www.cnblogs.com/SealedLove/archive/2009/02/19/1393755.html锁的类型根据完成任务所需要的结构不同,一个应用程序可能会使用多种不同类型的锁原语,因此,开发人员必须避免在一个给定任务中混淆这些锁原语,尤其在使用第三方提供的库时需要格外小心。假设在一个应用程序中,资源R依赖于第三方提供的库,并且在该库中资源R使用L型锁
2012-05-17 11:09:46
8943
转载 python的dictionary(map)实现
转自:http://www.laurentluce.com/posts/python-dictionary-implementation/This post describes how dictionaries are implemented in the Python language.Dictionaries are indexed by keys and they can b
2012-05-10 12:53:45
4430
转载 STL map与Boost unordered_map
转自:http://blog.youkuaiyun.com/orzlzro/article/details/7099231今天看到 boost::unordered_map, 它与 stl::map的区别就是,stl::map是按照operator<比较判断元素是否相同,以及比较元素的大小,然后选择合适的位置插入到树中。所以,如果对map进行遍历(中序遍历)的话,输出的结果是有序的。顺序就
2012-05-10 12:14:52
1582
转载 float,double 的范围和有效数字怎么算出来的?
首先说一下: 范围是3.4E-38 ——3.4E+38,可提供7位有效数字。 上述这两个量都是近似值,各个编译器不太一样的。 下面我就将标准值是怎么定义的,和你说一下: 这个比较复杂,建议你找一下IEEE754标准看一下。 这个简单说一下吧: 在IEEE754标准中进行了单精度浮点数(float)和双精度数浮点数(double)的定义。float有32bit,doubl
2012-04-23 10:48:17
10867
2
原创 python 线程中使用os.system
场景:thread中执行os.system("wget ....")指令,wget未执行原因:待解决
2012-03-13 11:07:54
2462
原创 python捕获异常
try: ......except Exception, why: print sys.exc_info()[0],sys.exc_info()[1]
2012-02-21 09:12:43
1396
原创 python获取shell命令返回值
返回shell的输出(不管标准输出或是错误输出)import commandsline = commands.getstatusoutput(shellcommand)line = line[1]
2012-02-20 13:14:05
9886
原创 python时间操作
将string转换成struct_timetime.strptime(timeString, "%Y-%m-%d %H:%M:%S")计算两个struct_time类型time1, time2之间的时间差(datetime.fromtimestamp(mktime(endTime)) - datetime.fromtimestamp(mktime(startTime))).se
2012-02-20 13:04:46
1265
原创 python操作mysql
import MySQLdbconn = MySQLdb.Connection(ip, username, password, database, port)conn.set_character_set("utf8");cur = conn.cursor()cur.execute("select * from table")for data in cur.fetchall():
2012-02-20 12:54:37
975
转载 OAuth2.0的refresh token
转载自http://www.html-js.com/?p=1297最近看人人网的OAuth认证,发现他是OAuth2.0,之前一直看的是新浪的OAuth,是OAuth1.0.二者还是有很多不同的,主要的不同点在access token的获取方式.OAuth1.0的access token获取过来之后,就可以存到数据库里,然后长期使用,因为它有效期很长,通常有效期
2012-02-13 20:37:55
41745
转载 Linux服务器上11种网络连接状态
转载自:http://taopian.iteye.com/blog/501580一、Linux服务器上11种网络连接状态 通常情况下,一个正常的TCP连接,都会有三个阶段:1、TCP三次握手;2、数据传送;3、TCP四次挥手。 注:以下说明最好能结合上图来理解。 SYN:(同步序列编号,Synchroni
2011-12-24 19:31:15
1212
转载 正确理解Linux内存占用过高的问题
转载自:http://hi.baidu.com/zheng918/blog/item/5dbe257ffae2e60029388a5b.html最近有个月经问题,老有人问为何开机后,还没有其他服务,mem就被用完了?是不是内存泄露?是否要重启服务?只能说不要看现象,要看本质才能找到问题的根源。往往给出这样的结果,怀疑内存用了90%:Mem: 4146788k total, 38
2011-12-17 22:51:19
951
转载 如何在Linux中防御SYN型DOS攻击
转载自:http://www.dbalife.com/archives/207.html在Linux中防御SYN型DOS攻击的方法比较常见的有增大队列SYN最大半连接数,减小超时值,利用SYN cookie技术,过滤可疑的IP地址等常用方法,下面分别进行分析.增大队列SYN最大半连接数 在Linux中执行命令"sysctl -a|grep net.i
2011-12-17 19:59:36
1714
原创 ulimit使用
ulimit 指令,用来限制用户的资源分配,比如打开文件数,最多进程数。可以使用指令ulimit -a来查看当前用户的各项limit限制。当设置ulimit -n largenumber时,可能会出现错误:-bash: ulimit: open files: cannot modify limit: Operation not permitted解决办法:1. 修改文件/etc
2011-12-17 18:50:39
3892
原创 _tkinter.TclError: no display name and no $DISPLAY environment variable
解决方法:参见:http://matplotlib.sourceforge.net/faq/howto_faq.html#howto-webapp的Matplotlib in a web application server节http://matplotlib.sourceforge.net/faq/usage_faq.html#what-is-a-backend讲述了backend是
2011-12-15 10:28:14
15717
原创 java读写文件
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;pu
2011-10-09 17:39:44
1145
原创 crawler4j代码解析
Crawler包Crawler.CrawController 控制爬虫,先addseed,再开启多个爬虫,并不断监听各个爬虫存活状态。Crawler.WebCrawler 爬虫1. Run():不断循环,每次从Frontier拿50条url,对每条url,proces
2011-07-30 00:15:01
8794
1
转载 zh_CN.UTF-8 环境下 Putty 的配置
转载自:http://www.dup2.org/node/297 当前的 Linux 发行版,选择中文环境后,缺省的 Locale 设置基本都是 zh_CN.UTF-8。由于我们Win32缺省的字符集环境通常是 GBK/GB18030,导致 putty 登录上去后访问 UTF-8 编码的中文文件不正常。以前我只是修改环境变量为 zh_CN.GB2312,然后只操作 GB 编码的文件;最
2011-06-24 09:00:00
1541
原创 文件指针回到开头
<br />#include <stdio.h>#include <iostream>#include <fstream>using namespace std;int main(){ ifstream in; in.open("b.cpp"); string temp; while (getline(in, temp)) { cout << temp << endl; } in.cle
2011-04-27 22:46:00
5713
原创 java抓取google查询页面,获得hit数
<br />import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.HttpURLConnection;import java.net.
2011-04-27 22:09:00
2631
转载 GCC 编译选项。
转载自http://blogold.chinaunix.net/u3/94700/showart.php?id=2340792<br />gcc提供了大量的警告选项,对代码中可能存在的问题提出警告,通常可以使用-Wall来开启以下警告:<br /> -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat<br /> -Wchar-subscripts -Wimplicit-int -Wim
2011-02-28 12:58:00
1885
原创 floyd算法,求任意点间最短距离
<br />有向图G中可能存在负边,但不存在负边灰回路,此时求G上任意两点间的最短距离,可以用Floyd算法。W[i][j]代表i到j的边权值,如果i==j,则W[i][j]=0,如果i和j之间没有边,则W[i][j]=infinite。节点记号为1->n。<br /><br />构造d[k][i][j],它代表当从i到j的最短路径中所包含中间节点只能落在1->k时,所得最短路径长度。<br />递推式:<br />最终d[n][i][j]极为i到j的最短路径(因为它考虑了中间节点为1->n的所
2010-11-14 15:17:00
2474
原创 Dijkstra单源最短路径
<br />对于权值非负的有向图单源最短路径求解,可以用Dijkstra算法。<br /><br />伪代码:<br />Dijkstra(G, w, s){ for each vertex v in G { distance[v] = infinite parent[v] = NULL color[v] = WHITE } distance[s] = 0 insert the vertexes
2010-11-14 12:37:00
1021
原创 DAG单源最短路径
对于有向无环图求单源最短路径,可以按照图中节点的拓扑顺序来求路径。伪代码:DagShortestPath(G, w, s){ topologically sort the nodes in G //initialization for each vertex v in G { distance[v] = infinite parent[v] = NULL; } distance[s] = 0 f
2010-11-14 12:00:00
2508
原创 单源最短路径通用解法—BellmanFord
<br />问题:在可能存在负边的情况下,计算有向图中某个起点s到其它所有点的最小距离。设w[i][j]为点i到j的边的权值,G为图的邻接表表示。BellmanFord算法可以用来求s到所有点的最小距离,当图中存在负边回路时,该方法返回false,否则返回true。每个点的最小距离存于distance[v]中,parent[v]为v的前一个节点。<br /><br />伪代码:<br />BellmanFord(G, w, s){ //initialization for eve
2010-11-14 00:06:00
1173
原创 判断无向图中是否有环
转载自:http://blog.youkuaiyun.com/lyflower/archive/2008/03/01/2137710.aspx如果存在回路,则必存在一个子图,是一个环路。环路中所有顶点的度>=2。n算法: 第一步:删除所有度 第二步:将度数变为1的顶点排入队列,并从该队列中取出一个顶点重复步骤一。 如果最后还有未删除顶点,则存在环,否则没有环。n算法分析: 由于有m条边,n个顶点。如果m>=n,则根据图论知识可直接判断存在环路。 (证明:
2010-11-10 18:57:00
4102
1
原创 深度优先遍历DFS
本文章代码中的图用邻接矩阵来表示,所以算法复杂度为O(V^2)。如果用邻接表来表示,那么算法的复杂度为O(V+E)。通过DFS,形成一个由多棵深度优先树所组成的深度优先森林。将原先图中的边添加到该森林之后,可以将所有边定义为以下四类:1. 树边:森林中自带的边(即不在森林生成后,从原先图中添加的边)。2. 反向边:从某个节点指向祖先的边,包括自己指向自己。非森林自带的边。如果图中存在反向边,则表明存在环。3. 正向边:从某个节点指向后代的边,非森林自带的边。4.
2010-11-09 00:03:00
3201
原创 广度优先遍历BFS
本文章代码中的图用邻接矩阵来表示,所以算法复杂度为O(V^2)。如果用邻接表来表示,那么算法的复杂度为O(V+E)。献上代码:#include #include #include #define MAXLENGTH 1000#define WHITE false#define BLACK trueusing namespace std;//the color of node ibool color[MAXLENGTH];//the parent of node iin
2010-11-08 22:38:00
1125
原创 动态规划--达到最高效益的调度
问题:假设有一台机器,以及在此机器上处理的n个作业a1,a2,...an的集合。每隔作业aj有一个处理时间tj,效益pj,以及最后期限dj。机器在一个时刻只能处理一个作业,而且作业aj必须在tj连续时间单位内不间断地运行。如果作业aj在最后期限dj之前完成,则获得效益pj,但如果在最后期限之后才完成,则没有效益。请给出一个动态规划算法,来寻找能获得最大量效益的调度,假设所有的处理时间都是1到n之间的整数。分析:其实这个问题类似于01背包问题。1. 将a1,a2,…,an按照dj值排序,从小
2010-11-07 14:04:00
4599
10
原创 动态规划--01背包问题
问题:0-1背包问题是一个经典的动态规划问题,问题定义如下:有n个物品,其重量分别为W={w1, w1, w3, ... wn},其价值分别为V={v1, v2, v3, .. vn}。现在要将这N个物品放入允许的最大重量为w的包中,问怎样选择物品能使包中的物品总价值最大。分析:构建二维数组a[n][w],a[i][j]代表将1->i个物品放入允许的最大重量为j的包中,所能产生的最大总价值。初始时,令a[i][0]=0(i = 0->n), a[0][j]=0(j = 0->w)。计算a[i
2010-11-07 13:37:00
1592
1
原创 动态规划--计划一个公司聚会
<br />问题:Stewart教授是一家公司总裁的顾问,这家公司计划一个公司聚会。这个公司有一个层次结构;也就是,管理关系形成一棵以总裁为根的树。人事部给每个雇员以喜欢聚会的程度来排名,这是一个实数。为了使每个参加者都喜欢这个聚会,总裁不希望一个雇员和他(她)的直接上司同时参加。<br />Stewart教授面对一颗描述公司结构的树,使用了10.4节描述的左子女、右兄弟表示法。树中每个节点除了包含指针,还包含雇员的名字以及该雇员喜欢聚会的排名。描述一个算法,它生成一张客人列表,使得客人喜欢聚会的程
2010-11-07 00:44:00
3766
1
原创 动态规划--整齐打印
<br />问题:考虑在一个打印机上整齐地打印一段文章的问题。输入的正文是n个长度分别为L1、L2、……、Ln(以字符个数度量)的单词构成的序列。我们希望将这个段落在一些行上整齐地打印出来,每行至多M个字符。“整齐度”的标准如下:如果某一行包含从i到j的单词(i<j),且单词之间只留一个空格,则在行末多余的空格字符个数为 M - (j-i) - (Li+ …… + Lj),它必须是非负值才能让该行容纳这些单词。我们希望所有行(除最后一行)的行末多余空格字符个数的立方和最小。请给出一个动态规划的算法,来在
2010-11-06 22:40:00
8647
原创 动态规划--双调欧几里得旅行商问题
问题描述: 欧几里得旅行商问题是对平面上给定的n个点确定一条连接各点的最短闭合旅程的问题。如图(a)给出了一个7个点问题的解。这个问题的一般形式是NP完全的,故其解需要多于多项式的时间。 J.L. Bentley 建议通过只考虑双调旅程(bitonic tour)来简化问题,这种旅程即为从最左点开始,严格地从左到右直至最右点,然后严格地从右到左直至出发点。下图(b)显示了同样的7个点的最短双调路线。在这种情况下,多项式的算法是可能的。事实上,存在确定的最优双调路线的O(n*n)时间的算法。【动
2010-11-06 14:43:00
3671
4
原创 动态规划--最优二叉查找树
问题:假设n个已经排序的关键字{1,2,…,n},他们被搜索的概率分别为{p1,p2,…,pn},其它搜索值则被这些关键字分割,它们的概率为{q0,q1,…,qn}。q0代表搜索值小于1的可能性,qn代表搜索值大于n的可能性,qi(i=1,2,,…,n-1)代表搜索之大于i小于i+1的可能性。构建二叉搜索树,使得值搜索的期望代价最小。分析:令a[i][j]代表i->j的最优二叉搜索树的期望代价。于是我们可以得到以下递推式:这个算法的复杂度为O(n^3)。Knuth已经证明对于所有的1 代码:
2010-11-05 23:42:00
1653
原创 动态规划--最长单调递增子序列
问题:找出一个n个数的序列X中最长的单调递增子序列。分析1:这里描述一个O(n^2)的算法,令c[i]表示:在a[0->i]中,当以a[i]为单调递增子序列最后一个元素时,所得最长单调递增子序列的长度。所以,我们可以得到递推式:代码:#include #define MAXLENGTH 1000using namespace std;/** * @brief Get the longest increasing subsequence. The time complexity i
2010-11-05 21:14:00
14219
原创 动态规划--最长公共子序列
问题:已知整数序列X,Y,长度分别为m,n,求出它们的最长公共子序列。子序列的定义如下:给定一个序列X={x1, x2, …, xm},另一个序列Z={z1, z2, …, zk}是X的一个子序列,如果存在X的一个严格递增下标序列{i1, i2, …., ik},使得对于所有的j=1,2, …, k,有xij = zj。分析:令a[i][j]代表序列X[1->i]和Y[1->j]的最长公共子序列。则可获得递推式代码#include #define MAXLENGTH 1000using name
2010-11-05 18:31:00
1228
原创 动态规划--装配线调度问题
问题描述:一个找出通过工厂装配线的最快方式的制造问题。共有两条装配线,每条有n个装配站,装配线i的第j个装配站完成工作需要的时间为a[i][j] 。在通过i装配线的第j个装配站后,产品可以直接进入i装配线的j+1个装配站,当中不需要损耗时间;产品也可以进入另外一条装配线的j+1个装配站,这个过程需要损耗t[i][j]时间。产品从初始站进入装配线分别需要损耗时间为e[0],e[1] ,产品从装配线进入终点站分别需要时间为x[0],x[1]。求一个产品从初始站到达终点站的最快路径。分析:当j>1时,从初始站到完
2010-11-05 16:34:00
2923
原创 二叉搜索树
<br />#ifndef BINARYSEARCHTREE_H#define BINARYSEARCHTREE_H#include <cstdlib>#include <iostream>template <typename T>struct Node{ struct Node<T> *parent; struct Node<T> *left; struct Node<T> *right; T value;};template <ty
2010-11-04 00:02:00
658
原创 随机访问数组中第i大的元素
<br />在快排的基础上进行算法实现,只是每次分区之后只选择第i大的元素所在的区域进行查找。平均算法复杂度为O(n),最差算法复杂度为O(n^2),如同快排一样,出现最差情况的概率极低。<br />#ifndef RANDOMSELECT_H#define RANDOMSELECT_H#include <iostream>/** * @brief Exception class which means that i is larger than the number of elemen
2010-11-01 20:44:00
1107
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人