使用选择排序按字母顺序对数组进行排序

Sort Array by Alpabetical order using SelectionSort

我将我的代码引用到 SelectionSorting 上的 mathbits 网站,相应地将示例中的变量从 int 更改为 String,并按字母顺序添加排序。

以下是 lastName SelectionSort 学生的当前代码:

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;