Задача на сортировку массива. |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача на сортировку массива. |
Emeks |
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
Здравствуйте!Подскажите,пожалуйста, как решить задачу: реализовать процедуру, организующую поиск максимального значения в массиве целых чисел из 15 элементов на основе быстрого рекурсивного алгоритма.Без рекурсии знаю как,а как с рекурсией ее решить нет. Буду очень благодарен.
|
volvo |
Сообщение
#2
|
Гость |
Цитата Без рекурсии знаю как,а как с рекурсией ее решить нет Вот и покажи, как ты делаешь это без рекурсии...Цитата на основе быстрого рекурсивного алгоритма Рекурсия по определению медленнее итерации, так что быстрым как-раз будет итеративный алгоритм... |
Emeks |
Сообщение
#3
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
Вот и покажи, как ты делаешь это без рекурсии... Рекурсия по определению медленнее итерации, так что быстрым как-раз будет итеративный алгоритм... Без рекурсии(просто программа поиска,с выводом номера элемента):
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 |
Сообщение
#4
|
Гость |
При чем здесь заявленная в названии темы сортировка - не понятно.. И почему ты пользовался 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.
Сообщение отредактировано: volvo - |
Emeks |
Сообщение
#5
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
Спасибо огромное! (Я написал пример который я могу написать а рекурсию я не знаю.Сортировка в моем понимании отбор нужного элемента в данном случае.Реал потому что это немного другая задача которую я уже выполнил.)
Сообщение отредактировано: Emeks - |
Текстовая версия | 9.01.2025 9:22 |