我将代码引用到SelectionSorting上的mathbits网站,针对我的情况,将变量从示例int更改为String,并按字母顺序进行排序。

以下是我当前针对SelectionSortlastName学生的代码:

public static void SelectionSort(Student[] st) {

        int i, j, first;
        String temp;
        String jLastName = "";
        String firstLastName = "";
        String iLastName ="";

        for (i = st.length - 1; i > 0; i--) {
            first = 0;
            for (j = 1; j <= i; j++)
            {
                if (st[j].getLastName() != null) {

                    jLastName=st[j].getLastName();

                    if (st[first].getLastName() != null) {

                        firstLastName = st[first].getLastName();

                        if ((jLastName.compareToIgnoreCase(firstLastName)) < 0) {
                            first = j;
                        }
                    }
                }
            }

            iLastName = st[i].getLastName();
            temp = firstLastName;
            firstLastName = iLastName;
            iLastName = temp;

        }
    }


请原谅我为变量命名。
该代码不会给我错误。但是,输出未显示它已按照字母顺序排序。我可以知道我在哪个部分犯了错误吗?谢谢

最佳答案

该算法用于降序排序。

temp = st[ first ];
st[ first ] = st[ i ];
st[ i ] = temp;

09-07 05:00