在Linux下,有很多挂载远程(别的机器)目录的方法,例如NFS。
之前一直在用NFS,但是配置起来比较麻烦(需要N个C一个S),而且不太稳定(断网后无法卸载!),现在换sshfs,它基于Linux内置的ssh协议,只要又FUSE就能正常工作。
1、下载
到官网下载最新版本,当前是2.3
http://sourceforge.net/projects/fuse/files/sshfs-fuse/2.3/
2、编译、安装
tar -xzvf sshfs-fuse-2.3.t[......]
在Linux下,有很多挂载远程(别的机器)目录的方法,例如NFS。
之前一直在用NFS,但是配置起来比较麻烦(需要N个C一个S),而且不太稳定(断网后无法卸载!),现在换sshfs,它基于Linux内置的ssh协议,只要又FUSE就能正常工作。
1、下载
到官网下载最新版本,当前是2.3
http://sourceforge.net/projects/fuse/files/sshfs-fuse/2.3/
2、编译、安装
tar -xzvf sshfs-fuse-2.3.t[......]
实际上,没有绝对优秀的、应该始终采用的排序算法。
书上给出了一些选择不同排序算法的理由,写的非常好,抄录一下。
书上也在不同应用环境:字符串、浮点、几乎有序等情况下进行了测试,有兴趣的可以去翻阅。[......]
在前面的计数排序中,我们已经领略到了如何用空间换时间的方法,找到一种线性时间复杂度O(N)的排序算法。
计数排序的缺点也是非常明显的:一旦数据范围[0,k),中的k]相对于数据量N非常稀疏,计数排序的空间会非常大、时间消耗也会增大非常大。当然主要还是空间问题。
个人认为:桶排序 = 哈希排序 = 散列排序,基本思想是一样的。
于是桶排序/哈希排序应运而生,假设值域范围还是k,我们不去创建k个buckets,而是创建m个木桶,让N个元素通过哈系函数映射到这k个桶即可。这里还有一个[......]
在某些情况下,DNS缓存能大幅提升网络速度,比如一般的爬虫系统,都会架设DNS缓存服务器。
dnsmasq是一款轻量级的DNS缓存服务器,配置非常简单。
1、安装
sudo apt-get install dnsmasq
2、配置
#配置DNSMASQ
sudo vim /etc/dnsmasq.conf
resolv-file=/etc/resolv.conf_dnsmasq
#编辑resolv.conf
sudo cp /etc/resolv.conf /etc[......]
如果已知被排序的n个元素,值范围固定在在 "[0,k)"内],那么计数排序是最好的选择,它具有线性复杂度。
这个约束有些过强,有些时候,可以将不满足这个条件的转化一下:
比如 [-k, k)映射]到[0, 2k)等]。
再比如1/p的小树映射到p k-p等等。
下面上算法,主要走两遍:
首先建立k个桶
(1)扫描n个元素,增加对应桶中的计数
(2)从小到大扫描k个桶,计数非零则减一,然后顺序、依次输出。
源代码:
#include <stdio.h>[......]