08 2018 档案

摘要:算法描述:许多应用程序都需要按照顺序处理任务,但是不一定要求他们全部有序,或是不一定要一次就将他们排序。很多情况下我们只需要处理当前最紧急或拥有最高优先级的任务就可以了。面对这样的需求,优先队列算法是一个不错的选择。 算法图示: 算法解释:上图所展示的是最大优先队列(大顶堆)的算法逻辑,在这个标准的 阅读全文
posted @ 2018-08-25 22:15 冷豪 阅读(769) 评论(0) 推荐(0) 编辑
摘要:算法描述:快速排序是一种分治的排序算法。它将数组分为两个子数组,并将两部分独立的排列。快速排序和归并排序是互补的:归并排序将数组分成两个子数组分别排序,并将子数组归并以将整个数组排序;而快速排序将数组排序的方式则是当两个子数组都有序时整个数组也就自然有序了。 算法图示: 算法解释:选择标的元素(5) 阅读全文
posted @ 2018-08-18 13:26 冷豪 阅读(348) 评论(0) 推荐(0) 编辑
摘要:算法描述:将两个较小的有序数组合并成为一个较大的有序数组是比较容易的事情。我们只需要按照相同的顺序依次比较最左侧的元素,然后交替的放进新数组即可。这就是自顶向下的归并排序的实现思路。与之前的算法不同的是,归并排序需要使用额外的存储空间,用空间换时间的做法也是在排序算法中经常需要做的选择。 算法图示: 阅读全文
posted @ 2018-08-18 11:35 冷豪 阅读(2422) 评论(0) 推荐(0) 编辑
摘要:算法描述:希尔排序是一种基于插入排序的快速排序算法,相比于传统的相邻插入,希尔排序更加适合大规模乱序数组的排序。和插入算法一样,我们也可以优化插入和移动的过程从而进一步提升算法效率。 算法图示: 希尔排序算法的实质是首先将一个大的乱序数组变成几个小的有序数组,再逐步调整数组长度。最后一步依然是做一次 阅读全文
posted @ 2018-08-18 11:10 冷豪 阅读(475) 评论(0) 推荐(0) 编辑
摘要:算法描述:通常人们在整理扑克的方法是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置。在算法的实现中,为了给要插入的元素腾出1个空间,我们需要将其余所有元素在插入之前都向右移动1位。这种算法叫插入算法。 算法图示: 算法解释:在基础版本中通常的做法是,当新元素需要被插入有序数组的时候,从右 阅读全文
posted @ 2018-08-12 00:08 冷豪 阅读(274) 评论(0) 推荐(0) 编辑
摘要:算法描述:一种最简单的排序算法是这样的:首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置。再次,再剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,知道将整个数组排序。这种方法叫做选择排序,因为它在不断地选择剩余元素之中的最小者。 算法图示: Java代码示例 阅读全文
posted @ 2018-08-11 23:25 冷豪 阅读(321) 评论(0) 推荐(0) 编辑
摘要:适用场景:当需要在大量有序数据中查找的时候,推荐使用二分查找法(BinarySearch)。 下图演示的是在有序数组[10,11,12,16,18,23,29,33,48,54,57,68,77,84,98]中命中23和未命中50的情况: Java代码示例: Qt/C++代码示例: 相关附件: wh 阅读全文
posted @ 2018-08-10 22:31 冷豪 阅读(557) 评论(0) 推荐(0) 编辑
摘要:最近一直在忙项目,不知不觉2个多月没有更新博客了。正好自学了几天docker就干脆总结一下,也顺带增加一篇《30分钟入门系列》。网上能够查到的对于docker的定义我就不再重复了,说说我自己对它的理解:Docker一个方便多次部署的虚拟化Linux容器,与当下流行的SpringBoot和微服务框架搭 阅读全文
posted @ 2018-08-04 23:55 冷豪 阅读(1783) 评论(2) 推荐(1) 编辑

点击右上角即可分享
微信分享提示