- 博客(118)
- 资源 (28)
- 收藏
- 关注
转载 数组统计分析
转载自:数组统计分析给定数组A,大小为n,数组元素为1到n的数字,不过有的数字出现了多次,有的数字没有出现。请给出算法和程序,统计哪些数字没有出现,哪些数字出现了多少次。能够在O(n)的时间复杂度,O(1)的空间复杂度要求下完成么?分析这个题目,是有一定技巧的。技巧是需要慢慢积累,待经验多了之后,可以灵感或者直觉,就产生了技巧。如果不知道技巧,那该怎么办呢?
2013-08-29 13:57:40 2972
原创 《编程之美》2.21 只考加法的面试题
网上存在很多对该问题的解答,但是很多解答都有错误,比较正确的是http://blog.csdn.net/lyso1/article/details/5399146,但是问题解法较为复杂,在此将从另一个思路对问题进行解答,很大程度简化了算法正确性的证明。------------------------------------------------------------------------
2013-08-25 13:58:39 7959 5
原创 linux知识汇总
1. 利用Ctrl+Alt+F1到Ctrl+Alt+F6在6个虚拟控制台之间切换,利用Ctrl+Alt+F7切换回图形界面。2. 使用who命令来判断谁在系统上及其登录方式。id命令用来显示用户信息和组信息。3. cal命令列出当前月的日历。4. ps命令用来列出在系统上运行的进程。没有参数的ps命令显示单个终端上其他的所有进程。ps aux命令显示所有
2013-08-04 22:39:19 1842
原创 C语言基础知识
1. 一个枚举数据类型的每个枚举常量都表示一个特定的值,如果不是隐式地由枚举值列表中位置所决定,就是显式地使用一个常量表达式来初始化。由位置决定时,初始值是0。枚举中不同的常量,可以有相同的值。2. 编译器隐式地将一个具有数组类型的表达式(不如数组名)转换成指向数组第一个元素的指针。只有在下面的情况下,数组表达式才不会被转换成指针:1)当数组是sizeof运算符的操作数
2013-08-03 23:33:41 2687
原创 java基础知识汇总
1. 类的访问控制权限共有两种:public和默认。默认级别的类只能被同一个包中的类看到,包外不可见。2. 类成员的访问权限共有四种:public,protected,private和默认。protected成员包内随便访问,包外继承才能访问。private类外不能访问,内部类可以访问。默认包内可以访问,包外不能访问。3. final修饰变量的基本含义是,该变量一旦
2013-08-02 21:53:55 2990
原创 Hadoop集群运行JNI程序
要在Hadoop集群运行上运行JNI程序,首先要在单机上调试程序直到可以正确运行JNI程序,之后移植到Hadoop集群就是水到渠成的事情。Hadoop运行程序的方式是通过jar包,所以我们需要将所有的class文件打包成jar包。在打包的过程中,无需将动态链接库包含进去。在集群中运行程序之前,Hadoop会首先将jar包传递到所有的节点,然后启动运行。我们可以在这个阶段将动态链接库作为附件
2013-07-27 00:02:00 3961
原创 Linux下使用JNI的常见问题及解决方案
JNI是java和C/C++混合编程的接口,可以很方便地实现java调用C/C++语言。具体的使用方法,网上有很多教程,在此不做过多介绍。本博客只关注在使用JNI的过程中的常见问题。1. 生成头文件用命令:javah*.class这是错误的。运行上述命令会提示:java.lang.IllegalArgumentException: Not a valid class name:Se
2013-07-26 22:29:24 14320 3
原创 伪分布式环境下命令行正确运行hadoop示例wordcount
首先确保hadoop已经正确安装、配置以及运行。1. 首先将wordcount源代码从hadoop目录中拷贝出来。[root@cluster2 logs]# cp /usr/local/hadoop-1.1.2/src/examples/org/apache/hadoop/examples/WordCount.java ~/ygch/hadoop/因为在编译过程中需要将jave
2013-07-24 23:30:06 12400 1
原创 hadoop环境配置过程中可能遇到问题的解决方案
Failed to set setXIncludeAware(true) for parser遇到此问题一般是jar包冲突的问题。一种情况是我们向java的lib目录添加我们自己的jar包导致hadoop引用jar包的冲突。解决方案就是删除我们自己向系统添加的jar包,重新配置。将自己的jar包或者外部jar放入系统目录会在编译程序时带来方便,但是这不是一种好习惯,我们应该通过修改CLAS
2013-07-24 20:22:20 53825
原创 mpi中利用自定义归约操作实现merge
在归并排序中,很重要的一步是将两个排序数组合并成一个数组,这个操作叫merge。merge操作可以用来解决某些Top K问题。问题描述在哼唱搜索中,用户通过哼唱一个音乐片段去搜索与其相似的音乐。后台的实现主要有两个步骤:特征提取和特征匹配。特征提取是从原始波形音乐文件中提取最能代表音乐的特征。特征匹配就是利用提取的特征与特征库进行匹配,找到最相似的音乐。在实际情况中,特征库往往很大,目前商
2013-07-18 12:27:20 5823
原创 mpi中程序在集群中的分发
我们在开发mpi程序时,由于其是分布式程序,我们在单个节点上完成编码后,需要将代码拷贝到整个集群进行测试。集群之间的文件拷贝可以通过scp命令完成。但是scp命令是针对两个节点之间文件互传设计,为了将代码拷贝到所有的机器,我们需要多次调用scp命令。一个好的方法是将拷贝命令写成脚本,让其自动完成。 首次拷贝时,我们可以让scp拷贝整个工作目录到集群中,当项目较小时这种方法没有影响,
2013-07-17 21:03:56 4338
原创 mpi中的广播
MPI可以实现一对多的集合通信,最常用的是广播:某个进程将数据广播到所有其他进程,最终的结果就是每个进程都有一份广播的数据。MPICH中的广播函数是MPI_Bcast(void* buffer,intcount,MPI_Datatype datatype,int root, MPI_Comm comm)。该函数在使用过程中非常容易出错,在此我们通过具体实例来说明其使用方法。MPI_Bcas
2013-07-15 21:20:29 13401 1
原创 mpi和cuda混合编程的正确编译
针对大数据的计算,很多程序通过搭建mpi集群进行加速,并取得了很好的效果。算法内部的加速,当前的并行化趋势是利用GPU显卡进行算法加速。针对并行性非常好的算法,GPU加速效果将远大于集群带来的加速效果。所以,如果我们面临非常多的数据,针对数据的处理算法有具有很好的内部并行性,则我们可以将mpi和GPU结合,获得更大的加速比。 将mpi和GPU结合的产物就是GPU集群。它可以为我们带
2013-07-14 23:32:36 13127
原创 cuda中模板的使用
模板是C++的一个重要特征,它可以让我们简化代码,同时使代码更整洁。CUDA中也支持模板,这给我们编写cuda程序带来了方便。不过cuda4.0之前和之后使用模板的方法不一样,这给我们带来了少许困难。在cuda4.0之前,模板的使用和C++中无区别,使用非常方便,在此不做过多介绍。不过在cuda4.0之后,由于编译器的升级,导致之前的模板使用方法不再有效,我们需要重新设计代码。如果按照之前的方
2013-07-09 23:45:50 6802
原创 MPICH3环境配置
最新版的mpich简化了运行方式,不再提供mpd开头的命令,只需要一个mpiexec即可启动mpi运行环境,方便了mpi编程。源代码下载地址:http://www.mpich.org/downloads/。不过和之前的版本一样,在运行mpi程序时,首先要配置好系统环境。1. 安装mpich3从上述网址下载源代码后,解压,然后configure,最后make和make insta
2013-06-20 22:56:01 18780 3
原创 git使用说明
1. 创建git项目 使用git的第一步是创建一个git项目。这一步需要在github网站上完成,在网站中创建一个全新的repository。如果我们之前在本地完成一个项目,想要将该项目发布到github,则此时新建的repository不要有任何文件,即使是README这样的文件,然后我们可以按照如下流程完成创建: a) cd localproject
2013-06-11 20:17:36 5429 3
转载 数据的标准化
转载自:数据的标准化数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。 其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上,常见的数据归一化的方法有:min-max标准化(Min-max
2013-04-06 14:54:40 1664
转载 Kafka设计理念浅
本文转载自:Kafka设计理念浅本文将从以下两个方面去尝试讲解Kafka的设计理念,主要参考文献在这里:Kafka设计背景及原因Kafka的设计特色Kafka设计背景及原因Kafka最初被LinkedIn设计来处理活动流数据(activity stream data)和系统处理数据(operaitonal data)。活动流数据是指像page vie
2013-03-30 15:56:00 3684
转载 NoSQL 中的 CAP 原理
转载自:NoSQL 中的 CAP 原理我们知道 CAP 原来是任何存储无法规避的定律,任何存储设备都无法在一致性(C),可用性(A)和分区可容忍性(P)三者上都做得非常好。这就是所谓的CAP定律。这里推荐的这篇文章,从CAP原理讲起,然后将目前的各大 NoSQL 产品进行了分类,如下:按功能分类:Relational 关系性数据库,这里就不多说了,像我们常用的
2013-03-25 13:48:17 1726
转载 如何“打败”CAP定理
转载自:如何“打败”CAP定理CAP定理是数据系统设计的基本理论,目前几乎所有的数据系统的设计都遵循了这个定理。但CAP定理给目前的数据系统带来了许多复杂的、不可控的问题,使得数据系统的设计越来越复杂。Twitter首席工程师、Storm的作者Nathan Marz在本文中通过避开CAP定理带来的诸多复杂问题,展示了一个不同于以往的数据系统设计方案,给我们的数据系统设计带来了全新的思路
2013-03-25 13:41:07 1772
转载 Storm使用到的相关技术总结
转载自:Storm使用到的相关技术总结Storm作为一个开源的分布式实时流计算框架,其内部实现使用了一些常用的技术,这里是对这些技术及其在Storm中作用的概括介绍。以此为基础,后续再深入了解Storm的内部实现细节。1. Zookeeper集群Zookeeper是一个针对大型分布式系统的可靠协调服务系统,其采用类似Unix文件系统树形层次结构的数据模型(如:/zoo/a,
2013-03-24 16:30:54 2084
转载 使用 Twitter Storm 处理实时的大数据
转载自:使用 Twitter Storm 处理实时的大数据简介: Storm 是一个开源的、大数据处理系统,与其他系统不同,它旨在用于分布式实时处理且与语言无关。了解 Twitter Storm、它的架构,以及批处理和流式处理解决方案的发展形势。Hadoop(大数据分析领域无可争辩的王者)专注于批处理。这种模型对许多情形(比如为网页建立索引)已经足够,但还存在其他一些使用模型,它们
2013-03-24 15:22:07 2466
转载 Understanding the parallelism of a Storm topology
转载自:storm官方文档Storm distinguishes between the following three main entities that are used to actually run a topology in a Storm cluster:Worker processesExecutors (threads)TasksH
2013-03-24 14:54:42 1631
转载 storm入门教程 第四章 消息的可靠处理
转载自:量子恒道官方博客4.1 简介storm可以确保spout发送出来的每个消息都会被完整的处理。本章将会描述storm体系是如何达到这个目标的,并将会详述开发者应该如何使用storm的这些机制来实现数据的可靠处理。4.2 理解消息被完整处理一个消息(tuple)从spout发送出来,可能会导致成百上千的消息基于此消息被创建。我们来思考一下流式
2013-03-24 14:39:43 7691 1
转载 Storm入门教程 第二章 构建Topology
转载自:量子恒道官方博客2.1 Storm基本概念在运行一个Storm任务之前,需要了解一些概念:TopologiesStreamsSpoutsBoltsStream groupingsReliabilityTasksWorkersConfigurationStorm集群和Hadoop集群表面上看很类似。但是Hadoop上运行的是MapReduce jobs
2013-03-24 14:26:12 16267
原创 关于CUDA中__threadfence的理解
__threadfence函数是memory fence函数,用来保证线程间数据通信的可靠性。与同步函数不同,memory fence不能保证所有线程运行到同一位置,只保证执行memory fence函数的线程生产的数据能够安全地被其他线程消费。(1)__threadfence:一个线程调用__threadfence后,该线程在该语句前对全局存储器或共享存储器的访问已经全部完成,执行结果对
2013-01-15 21:20:04 15506 7
转载 Amdahl’s law (阿姆达尔定律)的演化和思考
本文转自:Amdahl’s law (阿姆达尔定律)的演化和思考 G.M.Amdahl在1967年提出了Amdahl’s law,针对并行处理的scalability给出了一个模型,指出使用并行处理的提速由问题的可并行的部分所决定。这个模型为并行计算系统的设计者提供了指导。其形式如下:f为问题中可被并行处理的部分的比例,m为并行处理机的数量,Speedup为并行后相比串行时的
2013-01-10 13:30:54 9564
转载 一个关于极限的方程
转载自:善科问答求解方程: 解法一: 原式可化为: 2=x12+14+18+⋯ ->⟹2=x 解法二: 两边平方4=xxxxx⋯−−−−√−−−−−−√−−−−−−−−−√−−−−−−−−−−−−√ 因为
2012-12-24 18:44:50 1718
转载 2012年北约自主招生的一道数学好题
转载自:善科问答2012年北约自主招生数学第7题:设点A,B,C分别在边长为1的正三角形三边上,求AB2+BC2+CA2的最小值。解法一:解法二:由于是等边三角形,则解法三: 在图中把正三角形的边PM关于PN,MN分别作镜面反射。可以得到A'和A''的关系PA'+MA''=P
2012-12-10 13:27:12 1499
原创 Linux下读取位图的注意事项
在Linux下读取位图遇到的问题,很好地体现了Linux与Windows操作系统的不同。按理说位图格式与操作系统无关,读取也应该无关,实际上在位图读到内存中时已经不同。下面主要介绍自己在Linux下操作位图遇到的问题。(一)、位图结构 位图一开始是两个结构体,包括位图的详细信息,是读取后面数据的关键。所以读取位图首先要正确读取这两个结构体:BITMAPFILEHEADER和BITMA
2012-11-30 15:09:33 3940
原创 CUDA编程常见问题
最近初试cuda编程,作为一个新手,遇到了各种各样的问题,然后花费了大量时间解决这些匪夷所思的问题。为了避免后来人重蹈覆辙,现把自己遇到的问题总结如下。(一)、cudaMalloc 初次使用该函数,感觉没有什么困难,和c语言的malloc类似。但是在具体应用中却出了一个很难找的错误,花费了很多时间。该函数使用是需要注意的就是,它分配的内存空间单位是字节,所以需要我们在使用时用siz
2012-11-05 10:55:07 19500 3
原创 vim常用操作
vim是Linux下编程的利器,用好vim,它的功能可以强大到比肩IDE。根据自己的使用情况,下面列出了比较好用的一些vim命令:操作模式作用/word命令查找wordn命令找到要查找的内容后,往下依次遍历N命令反向遍历要查找的内容ctrl+]命令查找一个函数或变量的最初定义位置
2012-10-18 15:46:25 1777
原创 Linux下常用命令与使用技巧
1. head命令head命令用来显示文件开头的几行。其还有一个很好的用途是用来合并文件,与cat然后重定向相比它会在合并的文件中每个文件开始包含合并文件的文件名。例:head -99999 ReadMe* >/tmp/merge_ReadMe.txt。含义是:将当前目录下以ReadMe开头的多个文件显示前99999行(其实就是显示整个文件),并重定向到tmp目录下的merge_ReadMe.
2012-10-13 22:31:35 1725
原创 2012百度之星初赛第一场B题
小弟新手,只尝试了B题,还各种bug。改过之后的代码是:#include long long pow(long long x){ long long a=10; while(x/a!=0) { a*=10; } return a;}int main(){ int n,i,s=0; long long x,a,b,p; scanf("%d",&n); for
2012-06-02 17:04:40 1788
原创 由swap看变量在内存中的分配
在排序问题中,我们必不可少的会用到交换操作。针对不同的语言,处理方式有所不同:或者单独写一个swap函数,或者直接在排序函数中实现交换操作。采用swap函数大多数人肯定会遇到不能交换的问题,其中的原理大家也应该都很清楚:swap函数交换的是局部变量,话虽如此,但具体的机制其实远不
2010-10-16 01:40:00 2222 1
基于递归分割的迷宫生成算法与自动寻路
2016-08-01
基于Access数据库的matlab学生成绩管理系统
2014-06-29
哼唱检索的并行化方法研究与实现
2014-03-18
vim高亮插件
2013-06-20
marsyas工作过程
2012-07-09
TCP实现windows和linux之间文件传输
2012-03-02
高效的霍夫曼文本压缩
2011-10-31
基于最短路的GPS地图导航
2011-02-28
PL0 集成开发环境
2010-07-12
PL0递归下降编译程序
2010-03-12
用霍夫曼树实现的文本压缩*(升级版)
2010-03-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人