Я ссылаюсь на свой код на сайт mathebits на SelectionSorting, изменяя переменные соответственно от int
до String
для моего случая и добавляя сортировку по алфавиту.Сортировка массива по алфавиту с помощью SelectionSort без Array.sort (обновлено)
Ниже мой текущий код для 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;
}
}
код не дает мне ошибку. Однако выход не показывает, что он был отсортирован в соответствии с альпапатическим порядком. Могу я узнать, в какой части я совершил ошибку? Спасибо
'String.compareTo()' не сравнивая 'длины String' ... –
@FlorentBayle Я вижу! Мое неправильное толкование! Я попробую еще раз – gymcode
Вызов метода не является допустимой целью для назначений. Скорее всего, вы все равно должны поменять студентов, вместо того чтобы менять фамилии. – fabian