『1』概述
希尔排序(Shell sort)是一种不常用的排序算法,因为它效率不算高,但是作为插入排序的改进算法之一,有必要了解一下。
- 时间复杂度:
最坏情况:
最好情况:
平均情况:
- 是不是稳定排序算法:否
- 得名起源:1959年的时候Donald Shell发明的,所以叫Shell sort
『1』概述
希尔排序(Shell sort)是一种不常用的排序算法,因为它效率不算高,但是作为插入排序的改进算法之一,有必要了解一下。
最坏情况:
最好情况:
平均情况:
本文是对这篇文章的翻译:《How to Schedule a Task to Run in an Interval》
我不知道原作者是否允许这样做,但我翻译本文仅在于传播知识的目的,在此向原作者表示深深的感谢:感谢你们的分享。
有一次,在一个程序中,对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)
写这篇文章实在是因为受不了“微度标签页”这个流氓插件内置的“亿起发”返利链接跳转,不得不愤怒地写此教程告诉大家如何去除它们的流氓行径。
今天突然发现,进不去WordPress后台管理页面了,登录之后,屏幕上就两句话:
不需要升级您的WordPress数据库已经是最新的了!
通常我们写程序,会用到一些配置文件,这些文件与程序在同一个父目录下,配置文件可能放在config之类的目录下,程序中会使用这些配置文件。
我遇到了这么件事情:因为一个特殊需求,需要把配置文件放到jar包中,最终部署出去的只能是一个jar包(所有东西都在jar包里,包括程序和所需的资源),然后在程序中使用 getClass().getResourceAsStream(文件在jar包中的路径) 的方式来读取配置文件。这也倒没什么不爽的,但是在单元测试中怎么办?
当今世界,深度学习应用已经渗透到了我们生活的方方面面,深度学习技术背后的核心问题是最优化(Optimization)。最优化是应用数学的一个分支,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。
梯度下降法(Gradient descent,又称最速下降法/Steepest descent),是无约束最优化领域中历史最悠久、最简单的算法,单独就这种算法来看,属于早就“过时”了的一种算法。但是,它的理念是其他某些算法的组成部分,或者说在其他某些算法中,也有梯度下降法的“影子”。例如,各种深度学习库都会使用SGD(Stochastic Gradient Descent,随机梯度下降)或变种作为其优化算法。
今天我们就再来回顾一下梯度下降法的基础知识。
转载请注明出处:http://www.codelast.com/
文章越来越多,越来越不好查询了,只能一点点归类。
➤ 在Emacs中使用树形“资源管理器”——emacs-nav
『1』下载
使用Sr Speedbar可以在Emacs中“造”出一个树形资源管理器。在这个页面下载到 sr-speedbar.el(若链接已失效,请自行搜索)。
『2』创建一个Emacs的load path
我在我放置Emacs插件的总目录 ~/.emacs.d/ 下创建了一个“extra”目录,用于放置其他我自己下载的插件,于是我把上面下载的 sr-speedbar.el 也放到这个extra目录下了。
『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自己创建的一个目录。
在Ubuntu下安装了VirtualBox之后,如果你的虚拟机安装的是Windows XP系统,那么,你会发现,当你插上U盘时,无论你怎么折腾,虚拟机(XP)里都是没有任何反应的,既不提示找到新硬件,也看不到U盘的分区。
不像VMware,默认安装之后对U盘的支持很好,根本不需要用户去配置什么东西。从这一点上,我觉得VirtualBox太龌龊了,小而美归小而美,但是你不能把最常用的功能放在基础支持列表之外,还要用户去配置才能用,不是么?
下面就教你如何能让VirtualBox的虚拟机(XP)找到U盘并挂载上。宿主机系统是Ubuntu。实话说,网上的很多文章写得实在让人很无语,要么简略得太夸张,要么连中文都写得不通顺(负点责任行吗),我实在是看不下去了,所以在研究出来怎么做之后,我决定要把这么简单的一件事情写成教程,帮助有需要的人。