Четверг, 21.11.2024, 11:59
Информатика и ИКТ
Приветствую Вас Гость | RSS
Главная Регистрация Вход
Меню сайта

Yandex_tech

Хабр-news

mail_news

Rambler

Статистика

Онлайн всего: 213
Гостей: 213
Пользователей: 0

oszone.net

IT-N-образование

Главная » 2020 » Август » 30 » Рекурсия в программировании (язык C). Статья 5
13:32
Рекурсия в программировании (язык C). Статья 5

Рекурсия в программировании (язык C). Статья 5

Давно не писал о рекурсии. Одна из моих любимых тем. Сегодня задача прямо предназначенная для рекурсивного программирования. Генерация перестановок. Когда-то я решал какую-то задачу и написал этот алгоритм. Конечно он не оригинален, в литературе вы встретите разные его вариации. Мне он нравится, потому что, как мне кажется, он наиболее понятен и не требует дополнительных математических знаний.

Программа, реализующая указанный выше алгоритм представлена в main40.c. Смысл алгоритма заключается в том, что по очереди выбираются элементы массива, которые должны быть первыми в наборе, затем рекурсивно выбирается следующий элемент и т.д. Сами числа хранятся в массиве, состоящем из структур. В каждой структуре хранится само число и флаг, показывающий, что данное число уже использовалось в перестановке или не использовалось. Флаг возводится при каждом рекурсивном вызове (rec1) и сбрасывается при возврате из вызова. В программе есть недостаток, она не учитывает, что введенные для перестановки числа могут совпадать. Ну, надеюсь, вы сами подумаете над этой проблемой.

Просмотров: 395 | Добавил: niko | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск

Календарь
«  Август 2020  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930
31

Форма входа

nixp.ru

OpenNet

Новые программы

SLO.ru

Погода
Яндекс.Погода

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Архив записей

    Copyright MyCorp © 2024