Здравствуйте!Подскажите,пожалуйста, как решить задачу: реализовать процедуру, организующую поиск максимального значения в массиве целых чисел из 15 элементов на основе быстрого рекурсивного алгоритма.Без рекурсии знаю как,а как с рекурсией ее решить нет. Буду очень благодарен.
volvo
19.06.2008 19:04
Цитата
Без рекурсии знаю как,а как с рекурсией ее решить нет
Вот и покажи, как ты делаешь это без рекурсии...
Цитата
на основе быстрого рекурсивного алгоритма
Рекурсия по определению медленнее итерации, так что быстрым как-раз будет итеративный алгоритм...
Emeks
19.06.2008 19:20
Цитата(volvo @ 19.06.2008 16:04)
Вот и покажи, как ты делаешь это без рекурсии...
Рекурсия по определению медленнее итерации, так что быстрым как-раз будет итеративный алгоритм...
Без рекурсии(просто программа поиска,с выводом номера элемента):
Programm Poisk; var m:ARRAY[1..15] of real; i:integer; max:real; t:integer;
BEGIN FOR i:=1 TO 15 DO BEGIN Write('Введите элемент последовательности N',i); Readln(m[i]); End; max:=m[1]; t:=1; FOR i:=1 TO 15 DO if m[i]>max then begin max:=m[i]; t:=i; end; Writeln('max=',max); Writeln('Номер макс элемента',t); Readln; End.
.
volvo
19.06.2008 19:54
При чем здесь заявленная в названии темы сортировка - не понятно.. И почему ты пользовался Real, если речь идет о целочисленных элементах - тоже...
Рекурсивный поиск макс. значения выглядит, например, вот так:
program Poisk;
function max(n: integer; var a: array of integer): integer; var t: integer; begin if n > 0 then begin t := max(n - 1, a); { <--- Рекурсия } if a[n] > a[t] then max:= n else max:= t end else max := 0 end;
const size = 15; var m: array[1 .. size] of integer; i, index: integer;
begin for i := 1 to 15 do begin write('Введите элемент последовательности N', i); readln(m[i]); end;
index := max(size - 1, m) + 1; writeln('Индекс = ', index, ' ; max = ', m[index]); readln; end.
Emeks
19.06.2008 20:11
Спасибо огромное! (Я написал пример который я могу написать а рекурсию я не знаю.Сортировка в моем понимании отбор нужного элемента в данном случае.Реал потому что это немного другая задача которую я уже выполнил.)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.