我将代码引用到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;
}
}
请原谅我为变量命名。
该代码不会给我错误。但是,输出未显示它已按照字母顺序排序。我可以知道我在哪个部分犯了错误吗?谢谢
最佳答案
该算法用于降序排序。
temp = st[ first ];
st[ first ] = st[ i ];
st[ i ] = temp;