简体   繁体   English

快速排序对象java

[英]Quick sort object java

i try to sorting this data, but it cannot be sorted我尝试对这些数据进行排序,但无法对其进行排序

Method Class方法类

public static Object[] QuickSort(Object[] object, int a, int b) {
  Mahasiswa[] data = (Mahasiswa[]) object;
    if (a < b) {
    }
    else {
        Object pivot = object[a];
        int i = a + 1;
        Object tmp;
        for (int j = a + 1; j > b ; j++) {
            if (((Comparable)data[j]).compareTo(data[j-1])== 1) {
                tmp = object[j];
                object[j] = object[i];
                object[i] = tmp;
                i++;
            }
         }
        object[a] = object[i - 1];
        object[i - 1] = pivot;
        QuickSort(object, a, i - 2);
        QuickSort(object, i, b);
    }
    return data;
}

public static void QuickSort(Object a[]) {
    QuickSort(a, 0, a.length - 1);
}
}

This is the main class.这是主类。

public static void main(String[] args) {

    Mahasiswa[] data = {new Mahasiswa("Hotman   : ", 175314109),

    new Mahasiswa("Wawul    : ", 175314010),

    new Mahasiswa("Paris    : ", 175314087),

    new Mahasiswa("Rio      : ", 175314120),

    new Mahasiswa("Kartini  : ", 175314064)};

    Larik.QuickSort(data);

    for (int i = 0; i < data.length; i++) {
        System.out.println(data[i].getNama()+""+data[i].getNim());
    }
}
}

output输出

Hotman : 175314109热人:175314109

Wawul : 175314010瓦乌尔 : 175314010

Paris : 175314087巴黎 : 175314087

Rio : 175314120里约:175314120

Kartini : 175314064卡蒂尼 : 175314064

BUILD SUCCESSFUL (total time: 0 seconds)构建成功(总时间:0 秒)

You are calling你在打电话

QuickSort(a, 0, a.length - 1);

and then in this method you are doing然后在这个方法中你正在做

if (a < b) {

}

which is true, so no sorting is occurring.这是真的,所以没有发生排序。

visit http://www.java2novice.com/java-sorting-algorithms/quick-sort/ for an example访问http://www.java2novice.com/java-sorting-algorithms/quick-sort/获取示例

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM