簡體   English   中英

按插入排序[降序]

[英]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]值,則交換索引ij 交換它們時只需更改布爾邏輯(即,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM