Поиск k-ой порядковой статистики за линейное время — различия между версиями
Niko (обсуждение | вклад) |
Niko (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
'''Алгоритм Блюма-Флойда-Пратта-Ривеста-Тарьяна''' (BFPRT-алгоритм) создан Мануэлем Блюмом(Manuel Blum), Робертом Флойдом(Robert Floyd), Воганом Рональдом Праттом(Vaughan Ronald Pratt), Роном Ривестом(Ron Rivest) и Рональдом Тарьяном(Robert Tarjan) в 1973 году. | '''Алгоритм Блюма-Флойда-Пратта-Ривеста-Тарьяна''' (BFPRT-алгоритм) создан Мануэлем Блюмом(Manuel Blum), Робертом Флойдом(Robert Floyd), Воганом Рональдом Праттом(Vaughan Ronald Pratt), Роном Ривестом(Ron Rivest) и Рональдом Тарьяном(Robert Tarjan) в 1973 году. | ||
+ | |||
+ | == Описание алгоритма == | ||
+ | Разбиваем наш массив на группы по 5 элементов(на самом деле можно разбивать и на другое нечетное количество элементов больших 5) последние числа добавляем в последнею группу. Затем в каждой группе находим средний элемент(медиану), это можно сделать простой сортировкой. И запустить рекурсивно данный алгоритм от медиан. Тем самым мы нашли медиану медиан. | ||
== Анализ времени работы алгоритма == | == Анализ времени работы алгоритма == |
Версия 07:52, 4 июня 2011
Историческая справка
Алгоритм Блюма-Флойда-Пратта-Ривеста-Тарьяна (BFPRT-алгоритм) создан Мануэлем Блюмом(Manuel Blum), Робертом Флойдом(Robert Floyd), Воганом Рональдом Праттом(Vaughan Ronald Pratt), Роном Ривестом(Ron Rivest) и Рональдом Тарьяном(Robert Tarjan) в 1973 году.
Описание алгоритма
Разбиваем наш массив на группы по 5 элементов(на самом деле можно разбивать и на другое нечетное количество элементов больших 5) последние числа добавляем в последнею группу. Затем в каждой группе находим средний элемент(медиану), это можно сделать простой сортировкой. И запустить рекурсивно данный алгоритм от медиан. Тем самым мы нашли медиану медиан.
Анализ времени работы алгоритма
Тогда покажем, что для всех выполняется неравенство . Докажем по индукции
- Очевидно, что для малых выполняется неравенство
- Тогда по предположению индукции и , тогда