Алгоритм сортировки массива c++

программирование C++ алгоритмы массивы

Здравствуйте. Помогите решить задачу по С++.
Нужно отсортировать элементы массива по особенному.
Например, есть э-ты массива: 1.2324 -9.432 1.0237 0.12414
Нужно, чтобы при сортировке вышло: -9.432 0.12414 1.2324 1.0237
То есть, чтобы сначала шли все, меньше единицы (но в том же порядке, что были раньше!) а потом все остальные (в том же порядке!)
И ещё, реализована сортировка должна быть таким способом:

// определение функции упорядочения массива по убыванию
void F_LgToSm(double ar_in[], const int n_dim)
{
for (int j=0; j < n_dim; j++)
{
// выбор наибольшего среди элементов с номерами j, j+1, ..., n_dim
int n_mx = j; // инициализация - принимаем за наибольший j-й элемент
for (int i = j + 1; i < n_dim; i++)
if (ar_in[i] > ar_in[n_mx])
n_mx = i;
// else continue; // случай, когда j-ый оказался наибольшим

// обмен элементов с номерами j и n_mx
double aux = ar_in[j]; // переменная aux - для промежуточных значений
ar_in[j] = ar_in[n_mx];
ar_in[n_mx] = aux;
}
}

Т.е., использовать можно только один массив.
Ответы:
Можно написать еще отдельно фунцию для сдвига элементов массива вправо
------------
Общий алгоритм:
пройтись по массиву, сместить все элементы меньше единицы влево, сдвигая остальные элементы вправо, сохраняя порядок (простой перестановкой, меняя местами)
---------------------------


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.