Вопрос задан 25.09.2023 в 01:39. Предмет Информатика. Спрашивает Французов Александр.

C++ Придумать два массива натуральных чисел (первый – близки по значению и с повторениями, второй

– далеки и без повторений). Построить быстрый алгоритм на C++ и выполнить сортировку придуманных двух массивов быстрым методом. чем легче код тем лучше (пожалуйста не списывайте с интернета, это очень важно)
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Крючкова Алена.

Ответ:

#include <iostream>

#include <algorithm>

using namespace std;

// Функция для быстрой сортировки массива

void quicksort(int *arr, int left, int right) {

   int i = left, j = right;

   int pivot = arr[(left + right) / 2];

   while (i <= j) {

       while (arr[i] < pivot) {

           i++;

       }

       while (arr[j] > pivot) {

           j--;

       }

       if (i <= j) {

           swap(arr[i], arr[j]);

           i++;

           j--;

       }

   }

   if (left < j) {

       quicksort(arr, left, j);

   }

   if (i < right) {

       quicksort(arr, i, right);

   }

}

int main() {

   // Создаем первый массив

   int array1[] = {1, 2, 2, 3, 4, 5, 6, 6, 7, 8};

   int n1 = sizeof(array1) / sizeof(array1[0]);

   // Создаем второй массив

   int array2[] = {9, 3, 5, 2, 8, 7, 1, 6, 4};

   int n2 = sizeof(array2) / sizeof(array2[0]);

   // Сортируем первый массив

   quicksort(array1, 0, n1 - 1);

   // Сортируем второй массив

   quicksort(array2, 0, n2 - 1);

   // Выводим отсортированные массивы на экран

   cout << "Sorted array1: ";

   for (int i = 0; i < n1; i++) {

       cout << array1[i] << " ";

   }

   cout << endl;

   cout << "Sorted array2: ";

   for (int i = 0; i < n2; i++) {

       cout << array2[i] << " ";

   }

   cout << endl;

   return 0;

}

Объяснение:

Этот код использует функцию quicksort для сортировки массивов. Функция quicksort рекурсивно разбивает массив на две части вокруг опорного элемента (pivot), затем сортирует эти две части отдельно друг от друга. Это продолжается до тех пор, пока весь массив не будет отсортирован.

Пример созданных массивов:

Первый массив: {1, 2, 2, 3, 4, 5, 6, 6, 7, 8}

Второй массив: {9, 3, 5, 2, 8, 7, 1, 6, 4}

Отсортированные массивы:

Sorted array1: 1 2 2 3 4 5 6 6 7 8

Sorted array2: 1 2 3 4 5 6 7 8 9

Обратите внимание, что первый массив содержит повторяющиеся элементы, а второй массив не содерж

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Хорошо, давайте создадим два массива и выполним сортировку с использованием быстрой сортировки (quicksort) на C++.

cpp
#include <iostream> #include <vector> #include <random> // Функция для быстрой сортировки void quicksort(std::vector<int>& arr, int left, int right) { if (left < right) { int pivot = arr[left + (right - left) / 2]; int i = left, j = right; while (i <= j) { while (arr[i] < pivot) i++; while (arr[j] > pivot) j--; if (i <= j) { std::swap(arr[i], arr[j]); i++; j--; } } if (left < j) quicksort(arr, left, j); if (i < right) quicksort(arr, i, right); } } int main() { // Создаем два массива std::vector<int> arr1 = {5, 2, 8, 3, 5, 8, 1, 9, 4}; // Близкий с повторениями std::vector<int> arr2 = {7, 3, 1, 9, 2, 4, 8, 6, 5}; // Далекий без повторений // Сортируем оба массива quicksort(arr1, 0, arr1.size() - 1); quicksort(arr2, 0, arr2.size() - 1); // Выводим отсортированные массивы std::cout << "Отсортированный массив 1: "; for (int num : arr1) { std::cout << num << " "; } std::cout << std::endl; std::cout << "Отсортированный массив 2: "; for (int num : arr2) { std::cout << num << " "; } std::cout << std::endl; return 0; }

В этом примере, мы используем функцию quicksort для сортировки массивов arr1 и arr2. Массив arr1 содержит близкие значения с повторениями, а массив arr2 - далекие значения без повторений. Код минималистичен и выполняет поставленную задачу.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос