Контрольная работа по "Информатике"
Автор: Nk11 • Апрель 3, 2022 • Контрольная работа • 545 Слов (3 Страниц) • 180 Просмотры
//Поразрядная сортировка
#include <iostream>
using namespace std;
//функция, возвращающая цифру числа, исходя из указанного разряда
int size_r(int num, int r)
{
while (r > 1)
{
num /= 10;
r--;
}
return num % 10;
}
//поразряная сортировка
//данная ф-ия сортирует массив, который передается в качестве параметра в нее
void sort_razr(int *mas, int r, int n)
{
int i, j, t = 0;
int *mas_col = new int[10]; //создаем ондномерный массив mas_col
for (int i = 0; i < 10; i++)
{
mas_col[i] = 0; //заполняем элементы массива нулями, потому как числа, у которых определенный разряд отвечает за конкретную цифру, должны будут идти в ряд сверху вниз, начиная с первой строки
}
int dop_mas[100][10]; //и двумерный массив dop_mas (в качестве кол-ва столбцов указываю 10, потому что всего число может содержать цифры от 0 до 9
for (i = 0; i < n; i++)
{
int a = size_r(mas[i], r); //в переменную a записывается цифра числа по разряду, указанному в качестве параметра ф-ии
dop_mas[mas_col[a]][a] = mas[i];
mas_col[a]++;
}
//в данном цикле идет переинициализация массива mas: сначала записываются числа с меньшими цифрами на конректно-заданном для ф-ии разряде
//потом с каждой итерацией записываются числа с большими
for (i = 0; i < 10; i++)
{
//если цифра не встречается ни в одном числе, то вложенный цикл пропускается на внешней итерации
for (j = 0; j < mas_col[i];
...