使用基数排序(Radix Sort)排序字符串
基数排序(Radix Sort)是 非比较排序算法,其时间复杂度是线性的, 即\(O(n)\)。刚刚接触这个算法的时候,本以为该算法只适合输入时非负整数的情况, 不过最近在整理以前写的排序算法的Demo时,偶然想到该算法应该也可以用于字符串的排序。 根据算法的特点,直观感觉是:待排序字符串应该都是等长的。不过, 只要稍加改造,该算法也可以用于不等长字符串排序。
java 使用Exchanger类实现两个线程交换数据
java.util.concurrent包中有许多涉及多线程并发的工具,使用这些现成工具可以大大简化编码,并且安全高效。
Exchanger提供了一个同步点,即调用exchange方法,当两个线程都到达这个同步点时,两个线程交换数据。
比如,有两个人,一个人需要买一本书,另一个人当然卖一本书,这两个人约定在某地交易,但这两个人距离约定地不同,到达目的地的时间也不同,先到...
ubuntu14.04 编译hadoop2.5
ubuntu13.10或以下版本也可以编译,只是源中maven和protobuf都版本太低,需要自己下源码重新编译安装,很繁琐。
hadoop2.5有编译好的发布包,但是默认是64位的,老是出现以下错误
OpenJDK Server VM warning: You have loaded library /hadoop/lib/native/libhadoop.so.1....
c++11, shared_ptr使用数组
最近被项目垃圾的内存管理搞的特别头大,正好这段时间在看《深入理解C++11:C++11新特性解析与应用》,了解了些c++11的特性。于是想着用c++11高大上的智能指针来做内存管理。
所谓高大上,相对于各种天生就支持垃圾回收的语言(如:java,python)来说也是个废才。支持个数组都麻烦的很,各方考证,下面写一个关于 shared_ptr 使用数组的小样例,主要参考 htt...
[Mac OSX]Error: The `brew link` step did not complete successfully
When I use brew to install PySide for Julia's PyPlot package, there is an error saying "The `brew link` step did not complete successfully" (see figure below)
收到“用户配置文件服务登录失败”错误消息的解决方案
前阵子在surface pro上使用WINDOWS 8.1操作系统时,突然出现了奇怪的问题:有一次登录系统时,不小心输错了密码,然而系统没有立刻提示密码输入错误,而是一直在“请等待”状态下(圈圈一直转),过了估计有10分钟才提示密码错误,请重新输入。于是重新输入后顺利进入系统。
如果问题仅仅止于此,也算不上奇怪。接下来使用电脑的时候突然发现,当鼠标右击某...
angularjs指令名是怎么回事?
疑惑
查了很多资料,对指令名的介绍都是一笔带过,只说是驼峰形式. 但是在实际使用时,经常遇到定义的指令名与指令标签对应不上的情况. 对指令名就感到非常疑惑. 定义时指令名是一种形式,使用时又是一种形式,两者怎么关联对应的?
找不到资料,自己查查angular源码,一探究竟.
分析源码
首先在angular.js文件,找到解析指令名的代码
...
利用Splunk做应用程序的性能分析
在我们的开发过程中,经常会需要对我们开发的程序做性能分析,有很多性能分析的工具,很多语言都提供了不同的profiling工具,这些工具很有用,提供了程序运行的原始记录数据,通过对这些数据的分析,可以得到程序运行的性能状况,找到问题所在。然而,这样的工具手机的数据比较原始,往往还需要一些更进一步的分析,才能定位问题。
Splunk是一个可以运行在不同平台上的机器数据的实时运维平台...
CoolShell 解密游戏解答
在这里有人给出了自己的解法,但是我不喜,所以有了本文。注意,本文中的 shell 代码均为 zsh。如果你在用 Windows,那建议还是不要玩了,那个对付这种事情太难用了。
可惜知道这个题晚了两天,没能进前X名 :-(
0. Fuck your brain
机器上没有 brainfuck 编译器,于是 Google「brainfuck online」,得到这个。贴进去运行...
Linux文件系统,为什么设计group
前言:
linux内核是一个很伟大的东西。。。(好吧~我居然用“伟大”来形容了linux内核),不过说实话,内核代码绝对是c语言中经典的经典。里面的一些设计思想都值得反复推敲、琢磨(虽然我还看不大懂,在啃过程中)。。按照我导师的话来说:写linux内核的那帮人绝对是顶级聪明的人。
看聪明人的作品,熏陶 熏陶自己。
我们今天关注问题如下:w...
Linux 运行自己的 mkfs 代码
1:背景:
最近研究文件系统迫切地需要通过直接查看磁盘上的二进制源码来观察inode bitmap,databitmap,inode table,数据区的信息。可是如何知道各个区域在不同文件系统中所占的块大小,起始地址是个头疼的问题。我试着通过debugfs的一些功能来查找。具体尝试如下:
debugfs /dev/sde3
stat .
...
mkstemp、mktemp、TemporaryFile区别
mkstemp
fd, name = tempfile.mkstemp 创建临时文件,并且将文件打开
>>> import tempfile
>>> tempfile.mkstemp()
(3, '/tmp/tmpkgWSR1')
查看/tmp目录,看到已经生成真实的文件
lsof...