04 2018 档案

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