Поиск k-ой порядковой статистики за линейное время — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «= Поиск k-й порядковой статистики за линейное время = == Историческая справка == '''Алгоритм Б…»)
 
Строка 1: Строка 1:
= Поиск k-й порядковой статистики за линейное время =
 
 
 
== Историческая справка ==
 
== Историческая справка ==
  
 
'''Алгоритм Блюма-Флойда-Пратта-Ривеста-Тарьяна''' (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 году.
 +
 +
== Анализ времени работы алгоритма ==
 +
<tex>T(n) \le T(\frac{n}{5}) + T(\frac{7n}{10}) + Cn </tex>
 +
Тогда покажем, что для всех <tex> n </tex> выполняется неравенство <tex>T(n) \le 10Cn </tex>.
 +
Докажем по индукции
 +
# Очевидно, что <tex>T(n) \le 10Cn </tex> для малых <tex> n </tex>
 +
# Для <tex>T(\frac{n}{5}) \le 2Cn</tex>, <tex> T(\frac{10n}{7}) \le 7Cn</tex>, тогда
 +
<tex>T(n) \le T(\frac{n}{5}) + T(\frac{7n}{10}) + Cn = 2Cn + 7Cn + Cn = 10 \Rightarrow T(n) \le 10Cn</tex>

Версия 08:31, 15 мая 2011

Историческая справка

Алгоритм Блюма-Флойда-Пратта-Ривеста-Тарьяна (BFPRT-алгоритм) создан Мануэлем Блюмом(Manuel Blum), Робертом Флойдом(Robert Floyd), Воганом Рональдом Праттом(Vaughan Ronald Pratt), Роном Ривестом(Ron Rivest) и Рональдом Тарьяном(Robert Tarjan) в 1973 году.

Анализ времени работы алгоритма

[math]T(n) \le T(\frac{n}{5}) + T(\frac{7n}{10}) + Cn [/math] Тогда покажем, что для всех [math] n [/math] выполняется неравенство [math]T(n) \le 10Cn [/math]. Докажем по индукции

  1. Очевидно, что [math]T(n) \le 10Cn [/math] для малых [math] n [/math]
  2. Для [math]T(\frac{n}{5}) \le 2Cn[/math], [math] T(\frac{10n}{7}) \le 7Cn[/math], тогда

[math]T(n) \le T(\frac{n}{5}) + T(\frac{7n}{10}) + Cn = 2Cn + 7Cn + Cn = 10 \Rightarrow T(n) \le 10Cn[/math]