F
freshcot
Здравствуйте. Помогите решить задачу по С++.
Нужно отсортировать элементы массива по особенному.
Например, есть э-ты массива: 1.2324 -9.432 1.0237 0.12414
Нужно, чтобы при сортировке вышло: -9.432 0.12414 1.2324 1.0237
То есть, чтобы сначала шли все, меньше единицы (но в том же порядке, что были раньше!) а потом все остальные (в том же порядке!)
И ещё, реализована сортировка должна быть таким способом:
Т.е., использовать можно только один массив.
Нужно отсортировать элементы массива по особенному.
Например, есть э-ты массива: 1.2324 -9.432 1.0237 0.12414
Нужно, чтобы при сортировке вышло: -9.432 0.12414 1.2324 1.0237
То есть, чтобы сначала шли все, меньше единицы (но в том же порядке, что были раньше!) а потом все остальные (в том же порядке!)
И ещё, реализована сортировка должна быть таким способом:
C++:
// определение функции упорядочения массива по убыванию
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;
}
}