C++
Придумать два массива натуральных чисел (первый – близки по значению и с повторениями, второй – далеки и без повторений). Построить медленный алгоритм на C++ и выполнить сортировку придуманных двух массивов медленным методом.
чем легче код тем лучше
(пожалуйста не списывайте с интернета, это очень важно)
и пожалуйста с объяснением
Ответы
Для решения задачи можно написать медленный алгоритм сортировки вставками. Этот алгоритм работает следующим образом: для каждого элемента массива мы находим его правильное место в уже отсортированной части массива и вставляем его на это место. Этот процесс повторяется для всех элементов массива.
#include <iostream>
#include <algorithm>
using namespace std;
// Сортировка массива методом вставки
void insertionSort(int arr[], int n) {
int i, key, j;
for (i = 1; i < n; i++) {
key = arr[i];
j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
int main() {
int arr1[] = {5, 2, 7, 2, 8, 4, 5, 1}; // Первый массив
int n1 = sizeof(arr1) / sizeof(arr1[0]); // Размер первого массива
int arr2[] = {10, 20, 30, 40, 50, 60, 70, 80}; // Второй массив
int n2 = sizeof(arr2) / sizeof(arr2[0]); // Размер второго массива
// Сортировка первого массива
insertionSort(arr1, n1);
cout << "Отсортированный первый массив: ";
for (int i = 0; i < n1; i++) {
cout << arr1[i] << " ";
}
cout << endl;
// Сортировка второго массива
insertionSort(arr2, n2);
cout << "Отсортированный второй массив: ";
for (int i = 0; i < n2; i++) {
cout << arr2[i] << " ";
}
cout << endl;
return 0;
}
В этом коде мы определяем два массива (первый с повторениями, второй без повторений), а затем вызываем функцию ' insertionSort ' для каждого из них. Функция ' insertionSort ' принимает массив и его размер, и выполняет сортировку методом вставки.