04 2018 档案
摘要:堆排序也是一种较为常用的排序算法。它是基于对的优先队列来实现的。要学习堆排序,就要学习优先队列,以及堆的特性。 优先队列 在很多的应用场景中,我们需要数据有序,但不需要它们全部有序,或者是不需要它们一次性有序,有序的数据时慢慢的被需要。 比如:某些事件系统中,事件有优先级。程序在处理事件时,只需要知
阅读全文
摘要:归并排序是分治算法的另一个典型的体现。与快速排序一样,它依赖数据之间的比较进行排序。 其缺点是需要额外的空间来辅助排序的过程。这使得归并排序的实用性大大降低,因为在日常的应用中,使用归并排序的场景都可以使用快速排序来替代。但是它的优点是可以按照预期来切分数组,每一次都可以对半分,这样不会出现因为分割
阅读全文
摘要:基础排序中,我们介绍两种排序方法:选择排序 和 插入排序。 这两种排序方法实现和理解都非常简单。学习它们非常有助于明白基础排序的弱点,以及了解为什么会有高级排序算法。而且插入排序还经常用于优化快速排序的小数组排序,这一点可以参见快速排序的文章。 选择排序 选择排序是人脑思维中最容易想到,也最容易实践
阅读全文
摘要:快速排序可能应用得最广泛的一个排序算法了。流行的主要原因是实现起来简单,也比其他算法快得多,更重要的是,它原地排序的两点,使得算法只需要一个很小的辅助栈。理想情况下,长度为N的数组,所需的时间和 NlgN 成正比。 快速排序是C.R.A.Hoare于1962年提出的,采用了分治的策略,也叫分治法。
阅读全文
摘要:1998年,章文嵩博士成立了Linux Virtual Server的自由软件项目,进行Linux服务器集群的开发工作。他的目标是:使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。LVS到现在已经使用的非常广泛了,绝大部分国内的互联网企业用它来做四层的负载均衡组...
阅读全文
摘要:从知乎作者Rui L学来的一招。应该用过 IPython 吧?想象一下,抛出异常时自动把你带到 IPython Shell 是不是很开心?而且和普通的IPython不同,这个时候可以调用 p (print), up(up stack), down(down stack) 之类的命令。还能创建临时变量,执行任意函数。事实上这是可以实现的, 而且很简单。首先安装ipython,然后把以下代码保存为 c...
阅读全文