Изменения

Перейти к: навигация, поиск

Сеть Бетчера

65 байт убрано, 19:33, 4 сентября 2022
м
rollbackEdits.php mass rollback
'''Сеть Бетчера''' (англ. ''Batcher bitonic mergesort'') {{---}} [[Сортирующие сети|сортирующая сеть]] размером <tex>O(n \log^2n)</tex> и глубиной <tex>O(\log^2n)</tex>, где <tex>n</tex> {{---}} количество число элементов для сортировки. Её авторство принадлежит Кену Бетчеру<ref>[http://en.wikipedia.org/wiki/Ken_Batcher Wikipedia {{---}} Ken Batcher]</ref>.
В этой статье будет описана сортирующая сеть для случая когда <tex>n</tex> {{---}} степень двойки (<tex>n = 2^k</tex>).
=== Полуфильтр ===
Битонический сортировщик представляет собой каскад так называемых '''полуфильтров''' (англ. ''half-cleaner'').
Каждый полуфильтр {{---}} сеть компараторов единичной глубины, в которой <tex>i</tex>-й входной провод сравнивается со входным проводом с номером <tex>\dfrac{n}{2} + i</tex>, где <tex>i=1,2,\dots,\dfrac{n}{2}</tex> (количество число входов <tex>n</tex> {{---}} чётное).
=== Точные формулы размера и глубины сети ===
Оценим глубину этой сортирующей сети. Она состоит из <tex>\log_2{n}</tex> слоёв объединяющих сетей и каждый слой имеет глубину, зависящую от его номера. В слое с номером <tex>i</tex> (<tex>1 \leqslant i \leqslant \log_2{n}</tex>) объединяющая сеть имеет глубину <tex>\log_2{2^i}</tex>, потому как объединяет <tex>2^i</tex> проводов. Таким образом глубина всей сортирующей сети в точности равна <tex dpi = "150">\sum\limits^{\log_2{n}}_{i = 1}{\log_2{2^i}} = \sum\limits^{\log_2{n}}_{i = 1}{i} = \fracdfrac{(1+\log_2{n})\log_2{n}}{2}</tex>.
Оценим размер сети. В объединяющей сети на <tex>n</tex> входов содержится <tex dpi="150">\fracdfrac{n \log_2{n}}{2}</tex> компараторов. Снова просуммируем формулу по числу объединяющих сетей и получим точную оценку <tex dpi = "150">\sum\limits^{\log_2{n}}_{i = 1}{ \fracdfrac{2^i \log_2{2^i}}{2} } = \sum\limits^{\log_2{n}}_{i = 1}{ 2^{i-1} i} = \fracdfrac{n \log_{2}^{2}{n} + 2 \log_2{n}}{4}</tex>.
== См. также ==
<references />
==Источники информации==
*[http[wikipedia://en.wikipedia.org/wiki/Bitonic_sorter | Wikipedia {{---}} Bitonic sorter]]
*Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. — 2-е изд. — М.: Издательский дом «Вильямс», 2005. — С. 808—818.
<!-- TODO: проверить 2007 издание Кормена и написать его -->
1632
правки

Навигация