по возможности опишите этотт процес, хочу разобраться - чуть не улавливаю
for (int i = 0; i < array.length; i++) {
for (int j = i + 1; j < array.length; j++) {
if (isNumber(array[i]) && isNumber(array[j])) {
if (Integer.parseInt(array[i]) < Integer.parseInt(array[j])) {
String temp = array[i];
array[i] = array[j];
array[j] = temp;
}
} else if (!isNumber(array[i]) && !isNumber(array[j])) {
if (isGreaterThan(array[i], array[j])) {
String temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
Jenya
10 уровень
обьясните пожалуйста данный код
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ГоффMaster
4 марта 2021, 10:21
Это стандартная сортировка, элементы сравниваются попарно, и если они не отсортированы, то меняются местами. Но при этом в данном случае дополнительно проверяется, буква или цифра и своп происходит только если элементы однотипные.
0
Kamoliddin
4 марта 2021, 04:45
вот каким способом смог решит я сам, мучался дня 3 наверное.
0
михаил
4 марта 2021, 04:43
игра пятнашки. сравниваешь два элемента массива и при необходимости меняешь местами.
0
Kamoliddin
4 марта 2021, 04:42
привет тут расширенный вариант пузырьковой сортировки.
if (isNumber(array[i]) && isNumber(array[j])) идёт проверка что оба цифры
если да то идёт
if (Integer.parseInt(array[i]) < Integer.parseInt(array[j])) берём оба символа как int и сравниваем условие как в bubble sort
если да то только цифры поменять местами.
и вложенный второй цикл else
(!isNumber(array[i]) && !isNumber(array[j])) идёт проверка что оба (не) цифры
если да то
isGreaterThan(array[i], array[j]) сравниваем уже символы с помошю метода если true
то идёт bubble sort.
как то так.
0