本文介绍了如何使用比较器来实现冒泡排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我如何使用比较器实现气泡排序?
How can i implement Bubble sort by using Comparator?
谢谢。
这就是我的方式比较器看起来是:
This is how my comparator looks:
class ColumnSorter implements Comparator {
int colIndex;
ColumnSorter(int colIndex) {
this.colIndex = colIndex;
}
public int compare(Object a, Object b) {
Vector v1 = (Vector) a;
Vector v2 = (Vector) b;
Object o1 = v1.get(colIndex);
Object o2 = v2.get(colIndex);
if (o1 instanceof String && ((String) o1).length() == 0) {
o1 = null;
}
if (o2 instanceof String && ((String) o2).length() == 0) {
o2 = null;
}
if (o1 == null && o2 == null) {
return 0;
} else if (o1 == null) {
return 1;
} else if (o2 == null) {
return -1;
} else if (o1 instanceof Comparable) {
return ((Comparable) o1).compareTo(o2);
} else {
return o1.toString().compareTo(o2.toString());
}
}
}
推荐答案
您可以像执行<
一样实现气泡排序。然后将<
的使用替换为 someComparator.compare(Object o1,Object o2)
。
You implement bubble sort just as you would with, say <
. Then you replace the use of <
with someComparator.compare(Object o1, Object o2)
.
以下是翻译规则:
if (arr[i] < arr[j]) {
...
}
if (someComparator.compare(arr[i], arr[j]) < 0) {
...
}
(如果使用>
,则应使用> 0
而不是< 0
。)
(If you used >
, you would use > 0
instead of < 0
.)
您应查阅的详细信息。这是第一句话:
You should consult the documentation for Comparator
for further details. Here's the first sentence:
这篇关于如何使用比较器来实现冒泡排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!