На этом шаге продолжим рассматривать рекурсию.
Псевдокод - представляет собой высокоуровневое описание решаемой задачи . Он записывается в форме, похожей на программный код, но в большей степени напоминает естественный язык.
Рассмотрим псевдокоды первого и второго решения задачи поиска сюрприза в коробках.
Первое решение можно построить на цикле while. Пока куча коробок не пуста, взять очередную коробку и проверить ее содержимое:
//в кучу добавляем коробки куча = собрать_все_коробки_из_главной_коробки(); while куча не пуста do begin //взять из кучи очередную коробку, //в коробке есть новые коробками или сюрприз коробка = взять_коробку(куча); //для всех элементов новой коробки for i:= 1 to все_содержимое_коробки do if элемент_коробки = коробка then добавить_коробку(коробка, куча); else сюрприз_найден(); end;
Второй способ основан на рекурсии. Рекурсией называется вызов функцией самой себя. Второе решение на псевдокоде может выглядеть так:
procedure поиск_сюрприза(коробка);
begin
for i:=1 to все_элементы_коробки do
if элемент_коробки = коробка then
поиск_сюрприза(элемент_коробки)
else сюрприз_найден();
end;
Оба решения делают одно и то же, но второе решение кажется более понятным. Рекурсия делает решение более понятным. Применение рекурсии не ускоряет работу программы: более того, решение с циклами иногда работает быстрее. Рекурсия используется во многих нужных алгоритмах, поэтому важно понимать эту концепцию.
На следующем шаге продолжим рассматривать рекурсию.