Сортирующие сети для квадратичных сортировок — различия между версиями
(→Сортирующие сети с последовательной сортировкой) |
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.
- Википедия - Сети сортировки




