import java.util.Comparator;
/
* 排序器接口(策略模式: 将算法封装到具有共同接口的独立的类中使得它们可以相互替换)
* @author骆昊
*
*/
public interfaceSorter {
/
* 排序
* @param list 待排序的数组
*/
public
extends
Comparable
>
void
sort(T[] list);
/
* 排序
* @param list 待排序的数组
* @param comp 比较两个对象的比较器
*/
public
void sort(T[] list, Comparator
comp);
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
import java.util.Comparator;
/
* 冒泡排序
*
* @author骆昊
*
*/
public classBubbleSorter implementsSorter {
@Override
public
booleanswapped = true;
for(int i = 1, len = list.length; i < len && swapped; ++i) {
swapped = false;
for(int j = 0; j < len - i; ++j) {
if(list[j].compareTo(list[j + 1]) > 0) {
T temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
swapped = true;
}
}
}
}
@Override
publicvoid sort(T[] list, Comparator
booleanswapped = true;
for(int i = 1, len = list.length; i < len && swapped; ++i) {
swapped = false;
for(int j = 0; j < len - i; ++j) {
if(comp.compare(list[j], list[j + 1]) > 0) {
T temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
swapped = true;
}
}
}
}
}
|
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222318.html原文链接:https://javaforall.net
