分析归并排序算法的时间复杂度,可以根据算法的逻辑,分析每一个步骤的最坏情况,然后得到总体的时间复杂度;也可以利用数学中的『归纳假设法』,用几乎纯数学的方式来得到它的时间复杂度。而后者比前者好理解得多,所以,我认为要推导归并排序的时间复杂度的话,归纳假设的方法是不二之选。
原创
[原创] Shell sort(希尔排序)笔记
『1』概述
希尔排序(Shell sort)是一种不常用的排序算法,因为它效率不算高,但是作为插入排序的改进算法之一,有必要了解一下。
- 时间复杂度:
最坏情况:
最好情况:
平均情况:
- 是不是稳定排序算法:否
- 得名起源:1959年的时候Donald Shell发明的,所以叫Shell sort
[翻译] 在JAVA中,怎样周期性运行一个任务
本文是对这篇文章的翻译:《How to Schedule a Task to Run in an Interval》
我不知道原作者是否允许这样做,但我翻译本文仅在于传播知识的目的,在此向原作者表示深深的感谢:感谢你们的分享。
[原创] mysql-mxj/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 错误的解决办法
环境:Ubuntu 12.10 64位
这个错误是我在一个Java的单元测试中遇到的,因为该unit test使用了Embedded MySQL。
[原创] InputStream读取多次导致的Unexpected end of ZLIB input stream问题
有一次,在一个程序中,对jar包里的一个文本文件使用如下方式来读取:
InputStream fin = getClass().getResourceAsStream("/file_to_read.txt");
然后在后面的代码中,对 fin 进行读取:
BufferedReader reader = new BufferedReader(new InputStreamReader(fin));
for (String line = reader.readLine(); line != null; line = reader.readLine()) {
//TODO: your code here
}
读一次是没有问题的,但如果对同一个InputStream对象读取两次,就会报类似于下面的错误:
… Read MoreError: java.io.EOFException: Unexpected end of ZLIB input streamat java.util.zip.ZipFile$1.fill(ZipFile.java:239)at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:141)at java.io.FilterInputStream.read(FilterInputStream.java:116)at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
[原创] 去除流氓插件“微度标签页”内置的“亿起发”返利链接跳转
写这篇文章实在是因为受不了“微度标签页”这个流氓插件内置的“亿起发”返利链接跳转,不得不愤怒地写此教程告诉大家如何去除它们的流氓行径。
注意:本文的方法无法防止流氓插件“微度标签页”的全部流氓行为——因为“微度”一旦升级,你修改过的本地插件数据可能就会被覆盖掉。所以,最好的方法就是:卸载它!大家可以换用Speed Dial 2这样的良心插件(云同步功能需要支付$2.99,我觉得完全可以接受,至少它一点流氓行径也没有)。
如果你非要自虐,继续使用“微度标签页”(我已经卸载了,改用Speed Dial 2),那么本文可以在一定程度上帮你去除其强制跳转的恶心行为,请继续往下看。
[原创] “不需要升级,您的WordPress数据库已经是最新的了!”导致进不了WordPress管理后台的问题
今天突然发现,进不去WordPress后台管理页面了,登录之后,屏幕上就两句话:
不需要升级您的WordPress数据库已经是最新的了!
于是问Google,查到这个问题是由于使用了object-cache缓存插件导致的问题,于是解决了,如下。
[原创] Java动态添加一个目录到classpath中
通常我们写程序,会用到一些配置文件,这些文件与程序在同一个父目录下,配置文件可能放在config之类的目录下,程序中会使用这些配置文件。
我遇到了这么件事情:因为一个特殊需求,需要把配置文件放到jar包中,最终部署出去的只能是一个jar包(所有东西都在jar包里,包括程序和所需的资源),然后在程序中使用 getClass().getResourceAsStream(文件在jar包中的路径) 的方式来读取配置文件。这也倒没什么不爽的,但是在单元测试中怎么办?
[原创] 再谈 梯度下降法/最速下降法/Gradient descent/Steepest Descent
当今世界,深度学习应用已经渗透到了我们生活的方方面面,深度学习技术背后的核心问题是最优化(Optimization)。最优化是应用数学的一个分支,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。
梯度下降法(Gradient descent,又称最速下降法/Steepest descent),是无约束最优化领域中历史最悠久、最简单的算法,单独就这种算法来看,属于早就“过时”了的一种算法。但是,它的理念是其他某些算法的组成部分,或者说在其他某些算法中,也有梯度下降法的“影子”。例如,各种深度学习库都会使用SGD(Stochastic Gradient Descent,随机梯度下降)或变种作为其优化算法。
今天我们就再来回顾一下梯度下降法的基础知识。
[原创] Emacs文章合集
转载请注明出处:http://www.codelast.com/
文章越来越多,越来越不好查询了,只能一点点归类。
➤ 在Emacs中使用树形“资源管理器”——emacs-nav
[原创] 在Emacs中使用树形“资源管理器”——Sr Speedbar
『1』下载
使用Sr Speedbar可以在Emacs中“造”出一个树形资源管理器。在这个页面下载到 sr-speedbar.el(若链接已失效,请自行搜索)。
『2』创建一个Emacs的load path
我在我放置Emacs插件的总目录 ~/.emacs.d/ 下创建了一个“extra”目录,用于放置其他我自己下载的插件,于是我把上面下载的 sr-speedbar.el 也放到这个extra目录下了。
[原创] 在Emacs中使用树形“资源管理器”——emacs-nav
『1』下载
项目主页:https://code.google.com/p/emacs-nav/
『2』安装
解压下载到的安装包,并将其拷贝到一个自己创建的Emacs load-path中:
tar zxf emacs-nav-49.tar.gz cd emacs-nav-49/ mkdir ~/.emacs.d/emacs-nav/ cp * ~/.emacs.d/emacs-nav/
其中,~/.emacs.d/emacs-nav/ 是我为emacs-nav自己创建的一个目录。