2017年8月9日

[原创]堆排序(C++版)

摘要: 堆排序 时间复杂度:O(N*log2N)空间复杂度:O(1)不稳定的 下面的方式我是通过向下调整创建大根堆,然后通过向下调整进行堆排序。 另外还可以通过向上调整,以及创建小根堆的方式来进行堆排序,下面我只列出向上调整的方法函数,至于如何通过向上调整以及创建小根堆来实现堆排序,后面有机会再补充完善在该 阅读全文

posted @ 2017-08-09 17:46 最快的方法就是最慢 阅读(206) 评论(0) 推荐(0) 编辑

[原创]二路归并排序针对单向链表的场景(java版)

摘要: 二路归并排序最常用的场景是数组,那么如果数据结构采用单向链表呢?如何实现? 基本思想是一样的,对比数组场景,需要注意一下几点: ①在合并阶段:merge(..)合并两个已经有序的链表时,要比数组更简单些; ②在递归调用阶段:mergeSort(...),在该方法里,和数组一样需要确定中间位置,然后分 阅读全文

posted @ 2017-08-09 17:31 最快的方法就是最慢 阅读(676) 评论(0) 推荐(0) 编辑

[原创]二路归并排序针对数组的场景(C++版)

摘要: //二路归并排序时间复杂度O(N*log2N)空间复杂度O(n) 稳定的 int n = 10; int* B = (int*)malloc((n + 1)*sizeof(int)); void merge(int A[], int low, int mid, int high){ int i, j 阅读全文

posted @ 2017-08-09 17:08 最快的方法就是最慢 阅读(233) 评论(0) 推荐(0) 编辑

[原创]装饰模式(java版)

摘要: 1、什么是装饰模式? 动态的给一个对象添加额外的一些功能的方式,就增加功能来说,比子类继承要更加灵活。 添加额外功能可以通过set方法的方式传递进来一个需要被修饰的对象,或者通过构造函数传参的方式传入要被修饰的对象: java代码描述: //抽象构建 public abstract class Co 阅读全文

posted @ 2017-08-09 10:30 最快的方法就是最慢 阅读(185) 评论(0) 推荐(0) 编辑

2017年8月7日

[原创]Java中Map根据值(value)进行排序实现

摘要: 比如说: Map<String, Integer> map = new HashMap<String, Integer>(); 首先将Map集合转换成List集合,List选择ArrayList来实现: List<Entry<String,Integer>> list = new ArrayList 阅读全文

posted @ 2017-08-07 17:08 最快的方法就是最慢 阅读(512) 评论(0) 推荐(0) 编辑

[原创]适配器模式(java版)

摘要: 什么是适配器模式? 将一个类的接口转换成客户希望的另外一个接口,使原来由于不兼容而不能一起工作的类可以一起工作。 什么场景下使用适配器模式? 比如我们要复用早期的一些代码或者第三方库或者别人维护的代码的时候,但这些代码提供的接口和我们此时的使用环境不兼容,我们又不能去修改这些代码,于是就需要使用适配 阅读全文

posted @ 2017-08-07 11:39 最快的方法就是最慢 阅读(227) 评论(0) 推荐(0) 编辑

导航