Совет Как

Помогите написать программу в с++

Если вы хотите написать программу, которая будет сортировать массив и находить количество разных чисел в нем, то вам потребуется использовать язык программирования C++.

Как работает программа

В этой программе вы будете использовать алгоритм сортировки "QuickSort". Он быстрый и эффективный алгоритм, который позволяет отсортировать массив быстро и без ошибок. Он работает следующим образом:

  1. Выбирается опорный элемент из массива.
  2. Массив делится на две части: элементы, меньшие опорного, и элементы, большие опорного.
  3. Каждая из этих двух частей рекурсивно сортируется QuickSort'ом.

Теперь рассмотрим, как программа будет находить количество разных чисел в массиве.

  1. Сканируется массив.
  2. Каждый элемент сравнивается с каждым другим элементом в массиве.
  3. Если текущий элемент уникален, то счетчик увеличивается на 1.

Начало работы

Для начала работы вам нужно открыть "среду разработки" C++, такую ​​как CLion, Visual Studio, Code::Blocks и т. д.

После открытия "среды разработки" создайте новый проект с пустым файлом. Назовите его, например, "sorting.cpp".

Код программы

#include <iostream>

using namespace std;

// Вспомогательная функция для быстрой сортировки
int partition(int arr[], int low, int high) {
    int pivot = arr[high];
    int i = (low - 1);
 
    for (int j = low; j <= high - 1; j++) {
        if (arr[j] < pivot) {
            i++;
            swap(arr[i], arr[j]);
        }
    }
    swap(arr[i + 1], arr[high]);
    return (i + 1);
}

// Функция быстрой сортировки
void quickSort(int arr[], int low, int high) {
    if (low < high) {
        int pi = partition(arr, low, high);
        quickSort(arr, low, pi - 1);
        quickSort(arr, pi + 1, high);
    }
}

int main() {
    int arr[] = { 4, 2, 3, 2, 1, 4, 4, 5 };
    int n = sizeof(arr)/sizeof(arr[0]);

    int unique_count = 0; // счетчик уникальных чисел

    // сортировка массива
    quickSort(arr, 0, n - 1);

    // нахождение уникальных элементов в отсортированном массиве
    for (int i = 0; i < n; i++) {
        if (arr[i] != arr[i + 1]) {
            unique_count++;
        }
    }

    cout << "Количество разных чисел в массиве: " << unique_count << endl;

    return 0;
}

Объяснение кода

В этом коде мы используем функции "partition" и "quickSort" для быстрой сортировки и функцию "main" для нахождения уникальных элементов в отсортированном массиве.

Первая функция "partition" используется для разделения массива на две части: элементы, меньшие опорного, и элементы, большие опорного.

Функция "quickSort" использует рекурсивный подход, чтобы сначала отсортировать меньшую часть массива, а затем большую часть.

В функции "main" приведен пример массива, который мы сортируем. Затем мы находим количество уникальных чисел в массиве, используя цикл "for".

Результат работы программы

Если все сделано правильно, вы должны увидеть вывод на экран, который указывает количество разных чисел в массиве.

Количество разных чисел в массиве: 4

Заключение

Теперь вы знаете, как создать программу в с++, которая бы сортировала массив и находила бы количество разных чисел в нем. Вы можете улучшить эту программу, например, добавив пользовательский ввод, чтобы сортировать любой массив, который пользователь хочет.