ArrayList<String> list = new ArrayList<>();
ArrayList<Integer> list1 = new ArrayList<>();
for(int i = 0; i< array.length;i++){
if(isNumber(array[i])){ list1.add(Integer.parseInt(array[i])); }
else
list.add(array[i]);
}
String [] myString = list.toArray(new String[0]);
Integer[] myInt = list1.toArray(new Integer[0]);
int[] sortedInt = new int[myInt.length];
boolean isSorted = false;
while (!isSorted){
isSorted = true;
for(int i = 1; i < myInt.length; i++){
if(myInt[i]<myInt[i-1]){
int temp = myInt[i-1];
myInt[i-1] = myInt[i];
myInt[i] = temp;
isSorted = false;
}
}
}
for(int i = 0, a = myInt.length-1; i<sortedInt.length; i++,a--){
sortedInt[i] = myInt[a];
}
isSorted = false;
while (!isSorted){
isSorted = true;
for(int i = 1; i < myString.length;i++){
if (isGreaterThan(myString[i-1],myString[i])){
String temp = myString[i-1];
myString[i-1] = myString[i];
myString[i] = temp;
isSorted = false;
}
}
}
for(int i = 0, a = 0, b = 0; i<array.length; i++){
if(isNumber(array[i])){
String q = Integer.toString(sortedInt[b]);
array[i] = q;
b++;
continue;
}
else
array[i] = myString[a];
a++;
}
Какое простое есть решение у этой задачи? А то тут костылей - будь здоров.
Антон Сачук
18 уровень
ОСТОРОЖНО - ТУТ ЕСТЬ РЕШЕНИЕ, как мне кажется ТУПОЕ - НО ЕСТЬ!!
Обсуждается
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Антон Сачук
17 октября 2020, 13:44
Очень прошу - те которые опытные - не поленитесь и вставьте для проверки )
0
hidden #2322530
17 октября 2020, 13:59
если оно работает, почему же оно тупое тогда) можно для читаемости использовать разные утилитные методы, но под капотом они всё равно будут делать тоже самое, что и ты здесь написал)
0
Антон Сачук
17 октября 2020, 15:00
Артём - я помню твои слова, про короткое решение - утопия ) но --- можешь написать в ЛС по другому? Просто интересно уже с высоты 40 лвл опыта )
0
Lev Moiseev Software Developer в FirstBit
20 октября 2020, 14:32
Согласен с Артемом.
Главным критерием эффективности работы программиста, является корректно решенная задача (решенная в соответствии с требованиями и в срок). Уже после того как она решена, можно что-то пытаться оптимизировать, и не всегда в этом есть смысл.
Конкретно по твоему коду можно предложить заменить алгоритм сортировки пузырьком на реализованный в утилитах. Для больших массивов данных это особенно актуально, т.к. пузырек медленный. Только больших массивов в этой задаче не наблюдается.
0
Lev Moiseev Software Developer в FirstBit
20 октября 2020, 14:35
Вот так можно переписать твой код:
0
Lev Moiseev Software Developer в FirstBit
20 октября 2020, 14:42
я решил с использованием сортировки выбором, без разбиения исходного массива на числа и строки, так:
К плюсу такого решения, можно отнести относительную лаконичность.
А к жирному минусу - невозможность применения сортировки из утилит Java 0