public static void sort(String[] array) {
for (int i = array.length -1; i > 0; i--) {
if(isNumber(array[i])){
i--;
}
for (int j = 0; j < i ; j++) {
if(isNumber(array[j])){
j++;
}
if(isGreaterThan(array[j], array[i])){
String s = array[i];
array[i] = array [j];
array[j] = s;
}
}
}
for (int i = array.length -1; i > 0; i--) {
if(!isNumber(array[i])){
i--;
}
for (int j = 0; j < i ; j++) {
if(!isNumber(array[j])) {
j++;
}
if(Integer.parseInt(array[i]) > Integer.parseInt(array[j])){
String s = array[i];
array[i] = array [j];
array[j] = s;
}
}
}
}
Почему у меня не происходит сортировка, когда я ввожу одни строки?Nikolay Boguslavsky
25 уровень
Запутался вкрай.
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
RiccioMaster
10 марта 2019, 14:05
0
RiccioMaster
10 марта 2019, 14:13решение
Сначала напишите алгоритм сравнения словами. Например, можно так:
первый цикл for(), первая итерация i = 0
второй (вложенный) цикл for(), j = i + 1 //то есть j - это следующая ячейка от i
и пишем сравнение if (ячейка i - число и ячейка j - число)
сравниваем и, если надо, меняем местами
else if( ячейка i - строка и ячейка j - строка)
сравниваем и, если надо, меняем местами
Так прогоняется второй цикл до конца, затем к i прибавляется единица и снова весь вложенный цикл полностью - и будет вам сортировка пузырьком.
+2
Nikolay Boguslavsky
11 марта 2019, 07:09полезный
(ячейка i - число и ячейка j - число)
наверное так не получится, т.к. если будет одно значение число, а второе слово, то алгоритм всё равно уйдёт в else.
Но смысл я уловил, спасибо.
Я вместо else поставлю else if (слово и слово)
+1
Nikolay Boguslavsky
11 марта 2019, 07:44полезный
Вау, я решил! Единственное, о чем вы не упомянули -- это то, что в случае с числами элементы массива надо парсить в число, а не использовать метод isGreaterThan :
+2
Камилла
10 марта 2019, 13:50
По-хорошему пузырек - цикл в цикле. Немного тяжко ориентироваться в чужом коде, но попробуйте
вот этот цикл сделать внешним, внутри него делать проверку, число там или строка, и уже от этого плясать? 0
Ярослав Java Developer Master
9 марта 2019, 21:44
Какой алгоритм сортировки ты пробовал реализовать в коде?
0
Nikolay Boguslavsky
10 марта 2019, 06:25
Пузырьком.
0