【问题标题】:How to bubble sort with structs如何使用结构进行冒泡排序
【发布时间】:2020-06-15 19:15:29
【问题描述】:

我尝试通过冒泡排序方法对结构/类进行排序,我想保存在哪里

我这样定义结构/类:

public static class Student {
        String name;
        double grade;
    }

在结构或类中插入所有数据后,我想通过冒泡方法对整个数组进行排序,如下所示:

public static void ordenar_burbuja(Student array[]) {
    for (int i = 1; i < array.length; i++) {
        for (int j = 0; j < array.length-1; j++) {
            if(array[j].grade>array[j+1].grade) {
                Student aux = array[j];
                array[j] = array[j+1];
                array[j+1] = array[j];
            }
        }
    }
}

这个想法是从最高等级到最低等级对其进行排序,我在其中创建了这个辅助变量。我需要更改学生姓名和学生成绩位置。但是在定义辅助变量类型时我遇到了问题。我应该更改冒泡排序中的 .name 和 .age 吗,还是这样正确?

【问题讨论】:

标签: java struct bubble-sort


【解决方案1】:

在 if 块的最后一条语句中,将其更改为:

array[j+1] = aux

在第二个语句中,将 array[j] 分配给 array[j+1]。 然后将 array[j+1] 分配给 array[j],它现在持有对 aux 引用的对象的引用。 因此,您刚刚将 array[j+1] 和 array[j] 都设置为 aux(最初位于 array[j] 的 Student),这不是您想要做的。

【讨论】:

    猜你喜欢
    • 2020-07-17
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 2012-09-12
    • 1970-01-01
    • 2013-10-31
    • 2014-03-14
    相关资源
    最近更新 更多