Язык программирования Pascal. Процедуры и функции. Рекурсия. Васильев В.В - 24 стр.

UptoLike

24
Procedure move(n:byte; Source, Help, Res: Char);
begin
if n>0
then
begin
move(n-1,Source,Res,Help); k:=k+1;
writeln('Снять диск ',n,' со столбика ',Source,
' и надеть на столбик ',Res);
move(n-1,Help,Source,Res)
end end; {move}
Begin
Textbackground(7); Textcolor(blue); Clrscr;
Write('Введите количество дисков:');Readln(n);
Writeln('Последовательность действий:');
k:=0; move(n,'A','B','C');
writeln('Минимальное число ходов:',k); readkey
End. {Hanoi}
Ниже приведен результат работы программы Hanoi при n=3.
Введите количество дисков:3
Последовательность действий:
Снять диск 1 со столбика A и надеть на
столбик C
Снять диск 2 со столбика A и надеть на
столбик B
Снять диск 1 со столбика C и надеть на
столбик B
Снять диск 3 со столбика A и надеть на
столбик C
Снять диск 1 со столбика B и надеть на
столбик A
Снять диск 2 со столбика B и надеть на
столбик C
Снять диск 1 со столбика A и надеть на
столбик C
Минимальное число ходов:7
Можно провести аналогию между рекурсивным методом программирова-
ния и методом математической индукции. Вначале задача решается для про-
стого случая , например , для n=1. Затем предполагается , что существует реше-
ние для случая n-1 и решение для случая n сводится к решению для случая n-1.
При этом процедура вызывает сама себя до тех пор , пока не будет достигнута
элементарная ситуация .
Познакомимся с рекурсивным алгоритмом быстрой сортировки массива.
Метод быстрой сортировки был разработан в 1962 г. профессором Оксфордско-
го университета К . Хоаром .
Задача 3. «Быстрая сортировка» . Упорядочите элементы одномерного
массива по неубыванию методом быстрой сортировки.