2012-03-13 6 views
2

Каково минимальное количество сравнений, необходимых для нахождения наибольшего элемента из 4 отдельных элементов? Я знаю, что для 5 разных чисел это 6, пол (5/2) * 3; это из книги clrs. но я знаю, что нет никакой общей формулы для поиска этого или есть?Требуется минимальное количество сравнений

редактировать осветление

эти 4 элементов могут быть в любом другом порядке (для всех перестановок из этих 4-х элементов) им не заинтересованы в методике подсчета, чтобы следить за наибольший элемент, как вы траверс элементов, но сравнения вроде> или <.

+0

@ Неблагоприятно. –

ответ

5

для 4 элементов мин. число сравнений 3.

В общем, чтобы найти самый большой из N элементов, которые вам нужны N-1 сравнения. Это дает вам 4 5 цифр, а не 6.

Доказательство:

  1. всегда есть решение с N-1 сравнения: просто сравнить первые два, а затем выбрать больше и сравнить с следующей, выберите больше и сравните со следующим и т. д.

  2. не может быть более коротким решением, потому что это решение не будет сравнивать все элементы.

QED.

+0

вы можете объяснить пожалуйста? – David

+0

См. Мой обновленный ответ @David. – TMS

+0

Вторая часть доказательства довольно неряшлива. проверьте мой ответ, основываясь на том, что легко доказать эту часть. –

2

Подумайте об этом как о конкуренции. Сравнивая два элемента, у вас есть слабее и победитель.

Итак, если у вас есть n элементов и вам нужен 1 окончательный победитель, вам нужно сравнить n-1, чтобы исключить другие.

+0

см. Приведенные выше комментарии – David

-1

для элементов A, B, C, D

, если A> B + C + D, то требуется только одно сравнение, чтобы знать, что является самым большим.

Вам все равно придется повезти.

+0

см. Редактирование, которое я сделал выше – David