Comparable&Comparator都是用来实现集合中元素的比较、排序的,只是Comparable
是在集合内部定义的方法实现的排序,Comparator是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义Comparator
接口的方法或在集合内实现Comparable接口的方法。可以说一个是自已..
分类:
编程语言 时间:
2015-11-09 01:45:57
阅读次数:
196
前言,今天笔试一题,只做了最后一题(输入A,B两字符串,比较是否相等)。N年没有笔试了,想起一些还记的算法小结下。PS,想了几种,最后选择先建二叉查找树,再中序查找得有序字符,后循环比较方式。排序1.冒泡:从低往上选择临近比较排序;2.插入:在剩下要排序数据中,选一个按顺序插入;3.选择:在剩下要排...
分类:
编程语言 时间:
2015-10-21 17:22:18
阅读次数:
175
堆排序是一种集合了插入排序与归并排序的优点的排序算法,即有不错的渐近运算上限,又不用占用额外的运行空间。简单的说,它的排序思想如下:从一个数组中选出最大的数,然后在剩余的数里选出最大的数,如此循环,直到数组被穷尽,即可得到有序的数组。根据这个思路,很容易想到其复杂度:第一步,从n个数里选出最大的数,...
分类:
编程语言 时间:
2015-10-10 07:57:22
阅读次数:
176
Ordering是Guava类库提供的一个犀利强大的比较器工具,Guava的Ordering和JDK Comparator相比功能更强。它非常容易扩展,可以轻松构造复杂的comparator,然后用在容器的比较、排序等操作中。 本质上来说,O...
分类:
其他好文 时间:
2015-10-07 16:11:44
阅读次数:
168
1. 比较排序算法的下界 (1) 比较排序 到目前为止,我们已经介绍了几种能在O(nlgn)时间内排序n个数的算法:归并排序和堆排序达到了最坏情况下的上界;快速排序在平均情况下达到该上界。 如果仔细观察,我们会发现:在排序的最终结果中,各元素之间的次序依赖于它们之间的比较。我们把这类排序算法统称为比...
分类:
编程语言 时间:
2015-09-23 19:25:12
阅读次数:
233
各种排序算法的比较排序方法平均时间最坏情况辅助存储简单排序O(n2)O(n2)O(1)快速排序O(nlogn)O(n2)O(logn)堆排序O(nlogn)O(nlogn)O(1)归并排序O(nlogn)O(nlogn)O(n)基数排序O(d(n+rd))O(d(n+rd))O(rd)快速排序 排....
分类:
编程语言 时间:
2015-09-22 18:37:15
阅读次数:
286
要对集合中的对象的某属性进行排序有两种方式。a. 一种是要排序对象类实现comparable接口的compareTo方法;然后把对象放入list;然后调用Collections.sort(list);b. 一种是不对要排序对象类做任何改动,创建Comparator接口的实现类C;然后 把对象放入li...
分类:
编程语言 时间:
2015-08-31 16:57:58
阅读次数:
211
Comparable & Comparator 都是用来实现集合中元素的比较、排序的;Comparable 是在集合内部定义的方法实现的排序;Comparator 是在集合外部实现的排序;所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接...
分类:
编程语言 时间:
2015-08-26 22:11:08
阅读次数:
130
排序:对一序列对象根据某个关键字进行排序;
稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;
例如:插入排序、冒泡排序、归并排序、计数排序、基数排序、桶排序
不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;
例如:选择排序(5 8 5 2 9)、快速排序、堆排序
内排序:不占用额外内...
分类:
编程语言 时间:
2015-08-16 23:12:27
阅读次数:
172
---恢复内容开始---5.1-1证明:假设在程序HIRE-ASSISTANT的第4行中,我们总是能够决定哪一个应聘者最佳,则意味着我们知道应聘者排名的总次序 既然我们总是能够决定哪一个应聘者最佳,想必我们已经对应聘者进行比较了,既然已经进行比较,排序就不应是个问题,既然可以进行排序,总次序也就可....
分类:
编程语言 时间:
2015-08-02 18:07:50
阅读次数:
126