如何通過使用比較器來實現氣泡排序?如何使用比較器來實現氣泡排序?
謝謝。
這是我比較的樣子:
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());
}
}
}
ohhh好吧,所以沒有特殊的方式實施冒泡排序吧?只是implment泡沫排序通常是正確的? – 2011-04-12 22:15:04
是的。我會這樣認爲的。比較器僅適用於比較元素。它不會執行任何交換或分類。 – aioobe 2011-04-12 22:17:05