按插入排序[降序]排序

时间:2014-01-22 21:20:48

标签: java arrays sorting

如果此代码按升序排序

    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;

如何通过降序排序?

4 个答案:

答案 0 :(得分:2)

这是非常微不足道的。在您的算法中,如果i的值大于j,则会交换指标inList[i]inList[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;
       }
   }

答案 1 :(得分:2)

这里改变排序方向的最简单方法是更改​​if语句运算符&gt;到&lt;。

if (inList[i].compareTo(inList[j]) < 0) {

您可以在这里查看compareTo的工作原理 http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#compareTo(java.lang.String)

答案 2 :(得分:1)

只需切换&gt;与&lt;在compareTo行中。

答案 3 :(得分:0)

您可以使用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);