Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 29

Декомпозиционный алгоритм для поиска наибольшего элемента

12.07.2015, 08:42. Показов 3404. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Помогите пожалуйста разобраться с одной задачкой. Задачка из книги А.Левитина "Алгоритмы: Введение в разработку и анализ". Задачка 4.1.1.

4.1.1. а) напишите псевдокод декомпозиционного алгоритма для поиска наибольшего элемента в массиве из n чисел.

б) Какими будут выходные данные алгоритма, если наибольшее значение имеют несколько элементов?

в) Напишите рекуррентное соотношение для количества сравнения ключей, выполняемых алгоритмом.

г) Сравните созданный вами алгоритм с алгоритмом для решения указанной задачи, основанным на грубой силе.


Решение:

a) Псевдокод декомпозиционного алгоритма (Возможно я неправильно выделил псевдокод. Просто я не нашел как правильно его выделять).

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Алгоритм Max2 (A[l...r])
 
if l=r 
   return A[l]
 
else 
   temp1 <- Max2(A[l...(l+r)/2])
   temp2 <- Max2 (A[(l+r)/2...r])
   
   if temp1 >= temp2 
      return temp1
 
   else 
      return temp2
в)

https://www.cyberforum.ru/cgi-bin/latex.cgi?C(n)=2C(n/2) + n - 1<br />

Поскольку https://www.cyberforum.ru/cgi-bin/latex.cgi?a=2, b=2, d=1, то согласно основной теореме

https://www.cyberforum.ru/cgi-bin/latex.cgi?C(n) \in \Theta (nlogn)

г) Алгоритм на основе грубой силы имеет класс эффективности n, поэтому он будет эффективнее чем данный алгоритм.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.07.2015, 08:42
Ответы с готовыми решениями:

Декомпозиционный алгоритм для вычисления a^n
Добрый вечер, помогите пожалуйста разобраться с одной задачкой. Задачка из книги А.Левитина &quot;Алгоритмы:Введение в разработку&quot;. ...

Подскажите алгоритм поиска различного элемента двух последовательностей
Доброго времени суток! Выполняя очередную лабораторную по программированию, наткнулся на проблему выбора наиболее быстрого алгоритма для...

Функция для поиска наибольшего и второго наибольшего элемента вектора
Есть вектор который заполняется рандомно. И нужно найти два элемента - самое большое значение и второе по величине. И главным условием...

23
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 29
20.07.2015, 18:06  [ТС]
Студворк — интернет-сервис помощи студентам
Ну это да. А мы с Вами подсчитали количество сравнений C(n) = 2n - 1 для сравнений l == r. Правильно я понял?

Добавлено через 2 минуты
Просто я немного запутался и хочу понять какие сравнения мы считали с Вами.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,901
20.07.2015, 20:45
Цитата Сообщение от Andreyphisicist Посмотреть сообщение
Правильно я понял?
Мы с Вами посчитали для всех сравнений... но неправильно посчитали. Хотя, для сравнений l == r так и получается: 2n - 1.
А всего получается 3n - 2.
0
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 29
22.07.2015, 18:44  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
А всего получается 3n - 2.
Да, мне тоже так кажется.

Во всех рекурсивных алгоритмах, которые я смотрел в книге Левитина обычно границы сравнений не учитывали и оценивали эффективность именно по количеству основных операций.

Вот у меня поэтому и возник вопрос, надо ли вообще сравнение l == r учитывать.
Т.е. оценить только количество сравнений temp1 >= temp2 и взять начальное условие C(1) = 1.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,901
22.07.2015, 19:10
Цитата Сообщение от Andreyphisicist Посмотреть сообщение
Вот у меня поэтому и возник вопрос, надо ли вообще сравнение l == r учитывать.
Я не знаю.
По-моему, всё равно. (а в попугаях я значительно длиннее)

Если сравнение l == r не учитывать, то начальное условие будет C(1) = 0. Оно не "берётся", а вычисляется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.07.2015, 19:10

Алгоритм рекурсивного поиска наибольшего элемента массива.
11. Составьте алгоритм рекурсивного поиска наибольшего элемента массива. Напишите пожалуйста этот алгоритм.

Написать программу с функцией для поиска экстремального (наибольшего или наименьшего) элемента массива
Написать программу с функцией для поиска экстремального (наибольшего или наименьшего) элемента массива. Массив заполнить случайными...

Написать программу с функцией для поиска экстремального числа(наибольшего или наименьшего) элемента массива
Написать программу с функцией для поиска экстремального числа(наибольшего или наименьшего) элемента массива. Массив заполнить случайными...

Составить программу поиска наибольшего по модулю элемента массива, а также индекса этого элемента
Помогите написать программу и составить блок схему. Дано массив А и натуральное число n. Составить программу поиска наибольшего по модулю...

Поиска наибольшего по модулю элемента массива
Дан массив А и натуральное число n. Составить программу поиска наибольшего по модулю элемента массива, а также индекса этого элемента. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru