Сортирующие сети для квадратичных сортировок — различия между версиями
(→Сортирующие сети с последовательной сортировкой) |
Timur (обсуждение | вклад) |
||
Строка 16: | Строка 16: | ||
=== Сортировка пузырьком и вставками === | === Сортировка пузырьком и вставками === | ||
− | + | * Если сжать последовательные сортирующие сети пузырьком и вставками, то результат будет одним и тем же. | |
+ | |||
+ | {{ | ||
+ | Теорема | ||
+ | |statement= | ||
+ | В результирующей сети будет <tex>(2n - 3)</tex> слоев. | ||
+ | |proof= | ||
+ | Докажем данное утверждение по принципу математической индукции. | ||
+ | |||
+ | Базой индукции будет <tex> n = 2 </tex>. | ||
+ | |||
+ | Пусть <tex> S(n) = 2n - 3 </tex> - количество слоев в сети сортировки размера n. | ||
+ | |||
+ | Шаг индукции: | ||
+ | |||
+ | При построении <tex>(n + 1)</tex>-й сортирующей сети, выносим сортирующую сеть, содержащую <tex>n</tex> компараторов и добавляем к ней компараторы: <tex>[n + 1; n], [n; n - 1]\dots[3; 2], [2; 1] </tex>. | ||
− | + | Подсчитаем количество компараторов: <tex> S(n + 1) = n + n - 1 = 2n - 1 </tex> , заметим, что данное количество слоев удовлетворяет нашему шагу индукции <tex>(S(n + 1) = 2(n + 1) - 3 = 2n + 2 - 3 = 2n - 1)</tex> | |
− | + | }} | |
[[Файл:Parralelsort.png]] | [[Файл:Parralelsort.png]] | ||
=== Сортировка выбором === | === Сортировка выбором === | ||
+ | {{ | ||
+ | Теорема | ||
+ | |statement= | ||
+ | В результирующей сети будет <tex>\dfrac{n(n - 1)}{2}</tex> компараторов. | ||
+ | |proof= | ||
+ | Воспользуемся принципом математической индукции. | ||
+ | |||
+ | Базой индукции будет <tex> n = 2 </tex> | ||
+ | |||
+ | Шаг индукции: | ||
+ | |||
+ | Рассмотрим метод построения сетей для сортировок выбором. | ||
+ | Пусть <tex> S(n) </tex> - количество компараторов в сети сортировки с <tex> n </tex> входами, тогда для получения <tex>(n + 1)</tex>-й сети сортировки надо к предыдущей добавить компараторы: <tex>[n + 1; 1], [n; 1]\dots[3; 1], [2; 1] </tex>. | ||
+ | |||
+ | Подсчитаем общее количество компараторов: <tex>S(n + 1) = \dfrac{n(n - 1)}{2} + n = \dfrac{n(n + 1)}{2} </tex>, заметим, что данное количество компараторов удовлетворяет нашему шагу индукции. | ||
+ | }} | ||
[[Файл:Choosesortparralel.png]] | [[Файл:Choosesortparralel.png]] | ||
− | == Источники == | + | ==См.также== |
− | *Дональд Э. Кнут. Искусство программирования. Том 3. Сортировка и Поиск. | + | * [[Сортировочные сети с особыми свойствами]] |
+ | |||
+ | == Источники информации== | ||
+ | *Дональд Э. Кнут. Искусство программирования. Том 3. Сортировка и Поиск. стр. 238— ISBN 0-201-89685-0 | ||
+ | *Кормен, Томас Х.,Рональд Л., Штайн, Клифорд. Глава 27. Сортирующие сети // Алгоритмы: построение и анализ = Introduction to Algorithms. — 2-e издание. — М.: «Вильямс», 2005. — С. 799 - 822. — ISBN 5-8459-0857-4. | ||
+ | *[https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D1%8C_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8 Википедия - Сети сортировки] | ||
[[Категория: Дискретная математика и алгоритмы]] | [[Категория: Дискретная математика и алгоритмы]] | ||
[[Категория: Сортирующие сети]] | [[Категория: Сортирующие сети]] |
Версия 19:41, 19 мая 2015
Рассмотрим модели сортирующих сетей для квадратичных сортировок.
Содержание
Сортирующие сети с последовательной сортировкой
На один слой будем устанавливать только один компаратор. Все последующие сети получаются простым моделированием соответствующих сортировок.
Сортировка пузырьком | Сортировка вставками | Сортировка выбором |
Сортирующие сети с параллельной сортировкой
На один слой будем устанавливать несколько компараторов.
Сортировка пузырьком и вставками
- Если сжать последовательные сортирующие сети пузырьком и вставками, то результат будет одним и тем же.
Теорема: |
В результирующей сети будет слоев. |
Доказательство: |
Докажем данное утверждение по принципу математической индукции. Базой индукции будет .Пусть - количество слоев в сети сортировки размера n.Шаг индукции: При построении Подсчитаем количество компараторов: -й сортирующей сети, выносим сортирующую сеть, содержащую компараторов и добавляем к ней компараторы: . , заметим, что данное количество слоев удовлетворяет нашему шагу индукции |
Сортировка выбором
Теорема: |
В результирующей сети будет компараторов. |
Доказательство: |
Воспользуемся принципом математической индукции. Базой индукции будет Шаг индукции: Рассмотрим метод построения сетей для сортировок выбором. Пусть Подсчитаем общее количество компараторов: - количество компараторов в сети сортировки с входами, тогда для получения -й сети сортировки надо к предыдущей добавить компараторы: . , заметим, что данное количество компараторов удовлетворяет нашему шагу индукции. |
См.также
Источники информации
- Дональд Э. Кнут. Искусство программирования. Том 3. Сортировка и Поиск. стр. 238— ISBN 0-201-89685-0
- Кормен, Томас Х.,Рональд Л., Штайн, Клифорд. Глава 27. Сортирующие сети // Алгоритмы: построение и анализ = Introduction to Algorithms. — 2-e издание. — М.: «Вильямс», 2005. — С. 799 - 822. — ISBN 5-8459-0857-4.
- Википедия - Сети сортировки