Алгоритм выбора: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 20: Строка 20:


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

== Литература ==
* {{книга
|автор = Volker Heun
|заглавие = Основные Алгоритмы
|оригинал = Grundlegende Algorithmen
|ссылка =
|издание = 1-е изд
|место = Мюнхен
|издательство = Vieweg Verlag
|год = 2000
|страницы = 86
|isbn = 3-528-03140-9
}}



[[Категория:Алгоритмы]]
[[Категория:Алгоритмы]]

Версия от 22:33, 26 июля 2008

BFPRT-Алгоритм предназначен для эффективного поиска i-того элемента в неотсортированном списке. Назван в честь своих изобретателей: Manual Blum, Robert W. Floyd, Vaughan R. Pratt, Ronald L. Rivest и Robert Endre Tarjan. Используется при достаточно длинном списке элементов, свыше 800 элементов.

Принцип действия

Ввод: число , обозначающее -тый элемент

  1. Список делится на подмножества элементов, по 5 элементов в каждом (кроме последнего подмножества). Число элементов в подмножествах может вариировать от 5 до 21 и должно быть в любом случае нечетным.
  2. Каждое подмножество сортируется с помощью подходящего алгоритма сортировки.
  3. Пусть - множество медианов, образовавшихся в подмножествах после сортировки. Рекурсивно находится медиан в - медиан медианов. Назовем его .
  4. Множества сортируются (каждое по своему медиану) относительно медиана s. Результирующая после 4 шага структура, имеет следующую особенность:
    • Четверть всех элементов в любом случае имеет ключ .
    • Четверть всех элементов в любом случае имеет ключ .
  5. Если:
    • , то искомый элемент найден - это медиан медианов
    • , то алгоритм вызывается рекурсивно на множество всех элементов без
    • , то алгоритм вызывается рекурсивно на множество всех элементов без

Особенности

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

Литература

  • Volker Heun. Основные Алгоритмы = Grundlegende Algorithmen. — 1-е изд. — Мюнхен: Vieweg Verlag, 2000. — С. 86. — ISBN 3-528-03140-9.