public static void sort(String[] array) {
// напишите тут ваш код
for (int i = 0; i < array.length - 1; i++) { //для чисел сортировка по убыванию
if (isNumber(array[i])) {
int max = Integer.parseInt(array[i]);
for (int j = 1; j < array.length; j++) {
if (isNumber(array[j]) && (Integer.parseInt(array[j])) > max) {
max = Integer.parseInt(array[j]);
String temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
} else { //для текста сортировка по алфавиту
String min = array[i];
for (int j = 1; j < array.length; j++) {
if (!isNumber(array[j]) && isGreaterThan(array[j], min)) {
min = array[j];
array[j] = array[i];
array[i] = min;
}
}
}
}
}Margaret Medvedeva
22 уровень
Неправильно сортируется, не понимаю почему.
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Sergei Butchak
2 мая 2020, 16:36полезный
Как минимум обе части сортируют по убыванию, строки должны по возрастанию сортироваться
+1
Margaret Medvedeva
2 мая 2020, 16:55
они почему-то вообще не сортируются, ни по убыванию, ни по возрастанию...
0
Sergei Butchak
2 мая 2020, 17:20полезный
Во-вторых, в пузырьковой сортировке при проходе внутреннего массива сравниваются два соседних элемента, у вас же фиксированный array[i] сравнивается со всеми элементами
+1
Margaret Medvedeva
2 мая 2020, 18:22
Так это не пузырек, а сортировка выбором. Пузырьком тут не получается, потому что в массиве и строки и числа. Поэтому тут не пузырьком, а сортировка выбором
0
Margaret Medvedeva
2 мая 2020, 18:35
ооо! пока гуглила, как называется мой метод сортировки, увидела реализацию и нашла ошибку! Спасибо, что навели на ответ и а подсказку на счет неправильной сортировки строк!
0