[英]Sort by insertion sort [descending]
如果此代碼是按升序排序
public static String [] selectionSort_String(String[] inList) {
String temp;
for (int i=0; i<(inList.length-1); i++) {
for (int j=i+1; j<inList.length; j++) {
if (inList[i].compareTo(inList[j]) > 0) {
temp = inList[i];
inList[i] = inList[j];
inList[j] = temp;
}
}
}
// return the sorted Array
return inList;
如何獲得降序排序?
這是微不足道的。 在您的算法中,如果inList[i]
的值大於inList[j]
值,則交換索引i
和j
。 交換它們時只需更改布爾邏輯(即,i小於j)。
...
for (int i=0; i<(inList.length-1); i++) {
for (int j=i+1; j<inList.length; j++) {
if (inList[i].compareTo(inList[j]) < 0) { // <--Changing the operator to LT
temp = inList[i];
inList[i] = inList[j];
inList[j] = temp;
}
}
更改排序方向的最簡單方法是將if語句運算符>更改為<。
if (inList[i].compareTo(inList[j]) < 0) {
您可以在此處查看compareTo的工作原理http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#compareTo(java.lang.String)
只需在compareTo行中用<切換>。
您可以使用Arrays.sort進行排序,並在實現上將object2與object1進行比較以反轉結果。
Comparator<String> comparator = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
};
Arrays.sort(strings, comparator);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.