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

时间:2015-03-17 15:58:56

标签: java arrays sorting netbeans compare

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

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

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;

        }
    }

请原谅我对变量的命名。 代码不会给我错误。但是,输出未显示已根据alpabetical顺序进行排序。我可以知道哪个部分犯了错误吗?谢谢

1 个答案:

答案 0 :(得分:1)

此算法用于按降序排序。

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