/
khazov
/
module2
Обзор
Документация
Войти
/
khazov
/
module2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
3_task_3_3/task_3_3.cpp
85 строк
2 KB
KhazovAV
добавлены задачи по поиску и сортировке
06 авг 2026, 14:16
06 авг 2026, 14:16
b97dda2
Код
Авторство
О чём код?
#include <Windows.h> #include <iostream> using namespace std; void count_sort(int* arr, int size) { const int MIN_VAL = 10; const int MAX_VAL = 24; const int RANGE_SIZE = MAX_VAL + 1; // 0..24 // Массив для подсчёта количества каждого значения int count[RANGE_SIZE] = { 0 }; // Подсчитываем значения for (int i = 0; i < size; ++i) count[arr[i]]++; // Записываем отсортированные значения обратно в массив int idx = 0; for (int val = MIN_VAL; val <= MAX_VAL; ++val) { while (count[val] > 0) { arr[idx++] = val; count[val]--; } } } // Вспомогательная функция для вывода массива void print_array(const int* arr, int size) { for (int i = 0; i < size; ++i) { cout << arr[i]; if (i != size - 1) cout << " "; } cout << endl; } int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); // Тестовый массив 1 int arr1[] = { 19, 14, 22, 22, 17, 22, 13, 21, 20, 24, 18, 10, 17, 16, 17, 20, 22, 11, 20, 16, 14, 13, 10, 22, 18, 14, 16, 24, 19, 17 }; int size1 = sizeof(arr1) / sizeof(arr1[0]); cout << "Исходный массив:" << endl; print_array(arr1, size1); count_sort(arr1, size1); cout << "Отсортированный массив:" << endl; print_array(arr1, size1); cout << endl; // Тестовый массив 2 int arr2[] = { 16, 17, 14, 20, 22, 20, 17, 22, 16, 19, 23, 24, 20, 22, 21, 18, 14, 16, 17, 21, 10, 11, 19, 23, 11, 11, 17, 17, 11, 21, 17, 11, 17, 16, 12, 11, 16, 22, 23, 16 }; int size2 = sizeof(arr2) / sizeof(arr2[0]); cout << "Исходный массив:" << endl; print_array(arr2, size2); count_sort(arr2, size2); cout << "Отсортированный массив:" << endl; print_array(arr2, size2); cout << endl; // Тестовый массив 3 int arr3[] = { 21, 15, 19, 18, 23, 12, 18, 18, 19, 23, 12, 20, 15, 22, 21, 18, 19, 20, 12, 16, 20, 14, 17, 13, 10, 23, 19, 14, 10, 22, 19, 12, 24, 23, 22, 15, 13, 22, 18, 18, 11, 23, 24, 17, 10 }; int size3 = sizeof(arr3) / sizeof(arr3[0]); cout << "Исходный массив:" << endl; print_array(arr3, size3); count_sort(arr3, size3); cout << "Отсортированный массив:" << endl; print_array(arr3, size3); return EXIT_SUCCESS; }