Skip to content

[FIXED] Камалетдинов Рамзан. Технология SEQ. Поразрядная сортировка для целых чисел с простым слиянием. Вариант 17#242

Merged
allnes merged 5 commits intolearning-process:masterfrom
Ramzan8-88:kamaletdinov_r_bitwise_int
Mar 7, 2026

Conversation

@Ramzan8-88
Copy link
Contributor

Задача: Поразрядная сортировка целых чисел (Radix Sort)
Вариант: 17
Технология: SEQ (последовательная реализация)

Описание алгоритма

Алгоритм реализует поразрядную (radix) сортировку целых чисел, включая отрицательные значения. Используется десятичная LSD radix-сортировка на базе стабильной сортировки подсчётом (Counting Sort) по каждой цифре + правильная сборка отрицательной и неотрицательной частей.

Как работает последовательная версия

  1. Разделение входного массива на две группы:

    • neg — отрицательные числа (хранятся как положительные величины: -x)
    • pos — неотрицательные числа (≥ 0)
  2. Поразрядная сортировка каждой группы отдельно:

    • для обеих частей применяется функция RadixSortPositive
    • используется LSD подход (с младших разрядов)
    • на каждом разряде выполняется Counting Sort по цифрам 0–9 (база 10)
  3. Сборка результата в исходный массив:

    • сначала записываются отрицательные числа в порядке убывания модуля
      (поэтому отсортированный массив neg берётся с конца и к каждому элементу добавляется знак «−»)
    • затем дописываются неотрицательные числа в порядке возрастания

Такой порядок гарантирует корректную сортировку по возрастанию для всех целых чисел, включая отрицательные.

Асимптотика

  • Временная сложность: O(d · n)
    где d — количество десятичных разрядов максимального по модулю числа
  • Пространственная сложность: O(n)
    (дополнительные массивы neg, pos, output в Counting Sort)

Чек-лист выполнения

  • Статус CI: все задачи (сборка, тесты, генерация отчёта) успешно проходят в моей ветке
  • Директория и именование: создана папка kamaletdinov_r_bitwise_int с корректной структурой
  • Полное описание задачи: указано в теле pull request
  • clang-format: все изменения проходят проверку локально
  • clang-tidy: все изменения проходят проверку локально
  • Функциональные тесты: успешно проходят локально
  • Тесты производительности: успешно проходят локально
  • Ветка: работа ведётся в ветке kamaletdinov_r_bitwise_int (соответствует имени директории)
  • Все сведения в pull request точные и достоверные

@Ramzan8-88
Copy link
Contributor Author

Ramzan8-88 commented Mar 4, 2026

@allnes работа уже была смержена. в фиксе я поменял структуру тестов и изменил название директории с задачей, так как на последнем семинаре выяснилось что название было неверное

@allnes allnes merged commit a59c0c6 into learning-process:master Mar 7, 2026
34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants