1、堆的概念 堆排序依赖的数据结构是完全二叉树,要想是完全二叉树,前提必须是二叉树(废话),二叉树就要求父亲结点至多有两个孩子,即可以有一个、两个或者没有孩子。 完全二叉树则是在二叉树的基础上多了一些限制条件,那就是: 1、要么二叉树的每一层都是满的,即除叶子结点之外,其他结点都必须拥有左右孩子; ...
分类:
编程语言 时间:
2020-05-24 21:10:32
阅读次数:
66
那么JML(Java Modeling Language)到底是什么呢?“在面向对象编程中,一个重要原则就是尽可能地 推迟对于“过程”的思考 。”在每次编写程序后,想好了整体架构,搭建好了类和接口,之后面对的就是每一个方法。这个时候,我们思考的是这个方法能给我带来什么 预期结果 ,之后再考虑如何实现 ...
分类:
其他好文 时间:
2020-05-22 12:49:33
阅读次数:
57
现有一个List<User>集合,User中有这两个属性(String name; Integer age) 要通过age对list进行重新排序,以下有三个方法: 第一种方法:让User实现 (implements) Comparable接口重写compareTo方法: public class U ...
分类:
编程语言 时间:
2020-05-14 13:36:34
阅读次数:
106
//判断a是否小于b private static boolean less(Comparable v, Comparable w) { return v.compareTo(w) < 0; } //两个交换 private static void swap(Comparable arr[], in ...
分类:
编程语言 时间:
2020-05-13 23:40:22
阅读次数:
106
例: 使用内部类排序类: new Comparator 例2:使用继承Comparable 接口,重写compareTO 方法。 ...
分类:
编程语言 时间:
2020-05-03 12:20:39
阅读次数:
64
1、Comparable 这是一个接口,要让对象拥有比较能力,那么就可以继承这个接口,实现 compareTo 方法。 comparaTo返回1则排在后面,返回 1排前面 2、Comparator Comparator 相当于一个比较器,可以对一类对象进行排序而无需继承 Comparable 接口 ...
分类:
编程语言 时间:
2020-04-29 10:31:15
阅读次数:
67
要点:先递归向下拆分,再递归向上合并,合并后的元素是有序的,分而治之的思想。 为了理解起来简单,算法内部多了数组的创建过程。是可以优化的,可以看一下其它的归并版本。 1 public class MergeSort<T extends Comparable> { 2 3 private T[] so ...
分类:
编程语言 时间:
2020-04-28 15:29:17
阅读次数:
53
// hadoop+spark二次排序代码 package com.swust.hadoop; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spa ...
分类:
其他好文 时间:
2020-04-26 16:43:00
阅读次数:
64
1:所有可以 “排序” 的类都实现了java.lang.Comparable接口,Comparable接口中只有一个方法。2:public int compareTo(Object obj) ;该方法:返回 0 表示 this == obj返回整数表示 this > obj返回负数表示 this < ...
分类:
其他好文 时间:
2020-04-17 15:25:01
阅读次数:
60
首先说明用TreeSet集合存储自定义时,无参构造方法使用的是自然排序对元素进行排序的 然后,使用自然排序的前提是,让元素所属的类实现Comparable接口并重写comparaTo(T o)方法,来完成。 其次要注意,重写方法时,一定要注意排序规则必须按照要求的主要条件和条件来写。 下面通过一个需 ...
分类:
编程语言 时间:
2020-04-09 00:25:36
阅读次数:
88