Задачу решил, но метод "sort" получился уж больно громоздким, и так сказать "глаз не радует". Раз готовый код выкладывать нелься, то опишу по порядку действий: 1) Создаём boolean массив, который хранит true/false по индексу оригинального массива, в зависимости от содержимого (т.е. array[0] - строка, значит boolean[0] = false и т.д.) 2) Создаём 2 ArrayList для строк и чисел. 3) В самом обычном цикле всё делим по ArrayList и заполняем boolean массив. 4) Далее сортируем оба ArrayList методом Collection.sort. Для строк используя ... new Comparator<String>, переопределяя его метод "compare", для чисел просто ...Collection.reverseOrder(). 5) Ну и в финале, имея отсортированный ArrayList строк и чисел, и имея boolean массив, в котором сказано что должно быть на том или ином месте исходного массива - заполняем исходный array. Как я и сказал всё работает, задача прошла проверку, но есть пара вопросов: 1) Реализация метода получилось громоздкой, но всё же работает... Поэтому есть ли смысл заморачиваться по этому поводу, пытаясь найти более компактное решение (вопрос не столько по данной задаче, сколько о программировании в целом)? 2) Какой алгоритм для решения конкретной задачи можно ещё придумать?