![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Tech
文章平均质量分 75
dannyPolyu
这个作者很懒,什么都没留下…
展开
-
Memory reordering
Memory Barriers and JVM Concurrency 对主存的一次访问一般花费硬件的数百次时钟周期。处理器通过缓存(caching)能够从数量级上降低内存延迟的成本这些缓存为了性能重新排列待定内存操作的顺序。也就是说,程序的读写操作不一定会按照它要求处理器的顺序执行。这段话是作者对内存屏障重要性的定义。通过cache降低内存延迟,这句话很好理解。但后面那句“为了性转载 2013-03-26 19:46:30 · 600 阅读 · 0 评论 -
CentOS 安装hadoop
准备:CentOS6.4, Hadoop1.2.1, Java. 三台电脑Master, Slave01, Slave02.关闭防火墙 su (root)sudo service iptables stop #关闭iptablessudo chkconfig iptables off # 永久关闭iptables配置Hostnamevim /etc/hosts#127.转载 2013-09-15 15:56:55 · 869 阅读 · 0 评论 -
从大端小端,到联合体与结构体
问题引出: 计算机大端小端之争。1)Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。数字0x12345678 在大端小端的存储方式 1)大端模式:低地址 -----------------> 高地址0x12 | 0x34 | 0原创 2013-09-14 13:08:45 · 1395 阅读 · 0 评论 -
Linq learning
介绍C# 中 Linq 的应用。Introduction:LINQ: .NET Language Integrated Query.尝试一个问题:有两个数组int[] a = new int[] { 1, 2, 5, 4, 1, 4, 7, 2, 9, 0 };int[] b = new int[] { 2, 4, 7, 8 };找他们相同的元素转载 2013-09-13 20:58:32 · 528 阅读 · 0 评论 -
C++ 传值,传引用和传指针-参考Effective C++ 第三版Item20~21
拷贝构造函数 copy construtor 为什么有copy construtor?函数的传参数有三种方式:传值,传引用和传指针。传值会产生对象的副本,而后两者是传的是对象的别名和对象的指针。问题来了: 如果传值方式一个比较大的对象时候,在产生对象副本的时候一般会触发对象的构造函数。一般情况下构造函数会完成一些初始化工作,但是很有可能传进来的对象已经被改变了,如果调用构造函数原创 2013-09-12 15:24:40 · 1314 阅读 · 0 评论 -
C 版 位图排序法
问题: 给10^7 个 不重复的整数, 排序位图实现: 基本思路: 使用一位来表示一个数 例如集合 {1, 3, 5, 8}, 可以用 位图 {10101001} 来表示。即对应位置为1 如下图所示. 关键操作有: 1) 找到数据所对应的字节位置 2)找到数据对应的字节中位位置 3) 判断某位为1, 置某位为1 etc方法: 1) 找到 对应字节位置: 如果系统是32原创 2013-06-20 21:24:53 · 622 阅读 · 0 评论 -
最短路径 Part I- Single source shortest path
单源最短路径问题: 即从一个起点 (single source)到其他节点的最短路径。Lemma 1. 最短路径的子路径也是最短路径。 (如果子路径不是最短路径那么之前的路径也不是最短路径)。Negative weight edgesIf the graph G = (V, E) contains no negative weight cycles reachable原创 2013-09-10 22:00:14 · 1510 阅读 · 0 评论 -
HMM 做训练的 Sigma not positive definite (非正定的)原因及处理办法
最近使用pmtk3工具,做 HMM with Gaussian Mixture Model 的 fitting 的时候总是报错问题是Sigma is not positive definite. 大致搜了下什么是非正定,以及解决办法。(I)问题出现:四种情况可以出现此问题1. 输入的 covariance 或者corelation matrix 非正定。例如在最小二乘规划中原创 2013-08-27 19:32:10 · 4268 阅读 · 0 评论 -
快速排序 及应用
快速排序因其排序效率高, 成为 二十世纪最伟大的10大算法之一。 本文根据Introduction of algorithm (IOA)和 数据结构 李春葆版,研究快速排序算法。快速排序算法最重要在Partition 过程,即讲数组A[p, ..., r]排序,使得 A[p, ..., q-1]首先给出IOA上的 算法流程QUICKSORT(A, p, r)1 if p < r原创 2013-07-06 21:35:55 · 883 阅读 · 0 评论 -
文档的Jaccard相似度, MinHash, 及MinHash签名
MinHash 算法由 Andrei Broder (1997) 提出的, 它是一种快速计算海量文档相似度的近似方法。开始被用在AltaVista 搜索引擎上,用于检测两个duplicate web pages, 如果两个web pages非常的像,则把这个page丢掉。Minhash也被用在lage-scale clustering 算法中。本文的结构1. 文本的Jaccard相似度;原创 2013-07-21 18:06:00 · 5547 阅读 · 0 评论 -
迷宫问题 (下) 使用Quene 实现
Quene 的实现方法是 广度优先搜索方法。使用队列一层一层的将路线记录到队列中, 然后新加入的元素指向之前的元素。 struct { int i,j; int pre;}Qu[MAXSTACKSIZE];int front = -1, rear = -1;int findPathByQueue(int in_x, int in_y, int out_x, int out原创 2013-06-30 22:30:01 · 579 阅读 · 0 评论 -
迷宫问题 (上)栈 回溯法
迷宫问题的总体思路是,从迷宫的入口出发,沿着某一个方向向前试探,若能够行得通,则继续往前走,否则原来返回,再换另一个方向继续试探,直到所有可能的通路都被试探过,为了保证在任何一个位置都能够原来返回,需要设置一个堆栈结构来保存从入口到当前位置的路径。因为可以需要保证能够返回所在节点,所以需要回溯法能够保证回到走过的节点。本文的解法 参考 《数据结构 C》 李春葆 - 非迭代法, 迭代法 原创。迷原创 2013-06-30 16:16:44 · 906 阅读 · 0 评论 -
Bloom Filter 原理 及C++ 实现
布隆过滤器[1](Bloom Filter)是由布隆(Burton Howard Bloom)在1970年提出的。它实际上是由一个很长的二进制向量和一系列随机映射函数组成,布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率(假正例False positives,即Bloom Filter报告某一元素存在于某集合中,但是实原创 2013-07-13 18:04:51 · 4859 阅读 · 1 评论 -
中缀和后缀表达式
前缀表达式 (Prefix Notation) 是指将运算符写在前面操作数写在后面的不包含括号的表达式,而且为了纪念其发明者波兰数学家Jan Lukasiewicz所以前缀表达式也叫做“波兰表达式”。比如- 1 + 2 3后缀表达式(Postfix Notation) 与之相反,是指运算符写在操作数后面的不含括号的算术表达式,也叫做逆波兰表达式。比如1 2 3 + -中缀表原创 2013-06-23 23:20:11 · 689 阅读 · 0 评论 -
归并排序
归并排序的应用场景是当文件太大,没有办法一次行读入内存。则可以考虑归并排序,步骤如下:1. 先将大文件依次读取,固定长度的数据,然后使用排序算法,将这些数据做内存排序;2. 将排序好的部分数据存入临时文件中;3. loop 1~2 直到大文件中的数据,被读完且排序后存入到临时文件中;4. 读取这N个临时文件,选取最小的做归并排序。 归并排序是一种稳定排序方法。 程序转载 2013-07-06 21:15:35 · 502 阅读 · 0 评论 -
中英文并行语料对齐
1. 语料 MultiUN-zh-en.txt 2. 使用工具: 中文分词工具(stanford segmenter), 英文的tokenizer 对齐工具GIZA++ (giza-pp-v1.0.7.tar.gz)3. 预处理:a. 下载 en-zh-multiUN.tmx 版本的 包含了并行的句对,但是句对有些是错误的。需要处理一下,另外有些句子异乎寻常的长(原创 2013-06-03 23:25:04 · 4441 阅读 · 0 评论 -
C 语言 - 整型 原码,反码,补码
计算机可以识别0和1, 1个字节等于8位(1Byte=8bit)。无符号整型1表示为00000001,2表示为00000010,3表示为00000011, ..., 最大11111111。 无符号的数就是按这个原理来储存的,所以告诉你一个无符号的整数的二进制码,你就可以知道这个数是多少,而且知道在计算机中,这个数本身就是以这个二进制码来储存的。无符号的整数根本就没有原码、反码和补码。原创 2013-04-16 22:55:48 · 981 阅读 · 0 评论 -
位操作 示例程序
#include "myBit.h"void bitApp(){ // Even or odd //EvenOrOdd(); // Change two integer //Exchange(); // Change sign 改变符号 //changeSign(); // absolute value 取绝对值 //a原创 2013-09-21 21:34:12 · 666 阅读 · 0 评论