Упражнения на C ++: сортировка массива различных элементов по абсолютной разнице элементов массива и по заданному значению
C ++ Array: Упражнение 17 с решением
Напишите программу на C ++ для сортировки (в порядке убывания) массива различных элементов в соответствии с абсолютной разницей элементов массива и с заданным значением.
Пример решения:
Код C ++:
#include <bits/stdc++.h>
using namespace std;
void rearrange_array_elements(int nums[], int n, int x)
{
multimap<int, int> m;
for (int i = 0 ; i < n; i++)
m.insert(make_pair(abs(x-nums[i]),nums[i]));
int i = 0;
for (auto t = m.begin(); t != m.end(); t++)
nums[i++] = (*t).second ;
}
int main()
{
int nums[] = {0, 9, 7, 2, 12, 11, 20};
int n = sizeof(nums)/sizeof(nums[0]);
cout << "Original array: ";
int x = 12;
for (int i=0; i < n; i++)
cout << nums[i] <<" ";
rearrange_array_elements(nums, n, x);
printf("\nArray elements after rearrange: ");
for (int i=0; i < n; i++)
cout << nums[i] <<" ";
return 0;
}
Пример вывода:
Исходный массив: 0 9 7 2 12 11 20 Элементы массива после перестановки: 12 11 9 7 20 2 0
Блок - схема:
Редактор кода C ++:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на C ++ для сортировки заданного массива 0, 1 и 2. В последнем массиве сначала поместите все 0, а затем все 1 и 2.
Далее: Напишите программу на C ++ для перемещения всех отрицательных элементов массива целых чисел в конец массива без изменения порядка положительного элемента и отрицательного элемента.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования