2009-10-17 5 views
0

Пусть S - множество из n> 0 различных целых чисел. Предположим, что n является степенью 3. Трехмерное сравнение может сравнивать три числа из множества S и упорядочить их из самый большой и самый маленький.Выбор, поиск самого большого набора с тройным компаратором

Опишите эффективный алгоритм, который использует как можно меньше тройных сравнений, чтобы найти наибольшее количество в наборе S.Explain, почему ваш алгоритм правильный и укажите точное количество тройных сравнений, которые он использует в худшем случае.

Вопрос был в середине срока.

Мой ответ был следующим:

T (N) = 3T (п/3) + 1

решает (п/2) -1

Есть ли более эффективный способ сделать это ?

Спасибо.

+1

пахнет домашним заданием для меня ;-) – jldupont

+0

Да, он/она сказал, что это вопрос среднего возраста, они просто не отмечали его как таковой. Я отредактирую теги. – bcat

+0

чувак, это не вопрос домашней работы. – DarthVader

ответ

0

Я не думаю, что вы можете сделать лучше, чем это. обратите внимание, что каждое сравнение позволяет отбросить ровно два числа из соображений. вы должны получить (n-1)/2, а не (n/2) -1.

+0

Да, правда. это то, что я имел в виду на самом деле. – DarthVader

Смежные вопросы