Цифровая сортировка — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «'''Цифровая сортировка''' — алгоритм сортировки за линейное время. ==Алгоритм==»)
 
Строка 1: Строка 1:
 
'''Цифровая сортировка'''  — алгоритм сортировки за линейное время.
 
'''Цифровая сортировка'''  — алгоритм сортировки за линейное время.
 
==Алгоритм==
 
==Алгоритм==
 +
При цифровой сортировке данные разбиваются на "разряды", после этого данные сортируются какой-либо устойчивой сортировкой по каждому разряду, в порядке от младшего разряда к старшему.
 +
Для чисел наиболее часто в качестве устойчивой сортировки применяют [[сортировка подсчетом|сортировку подсчетом]].
 +
==Сложность==
 +
Пусть <tex>m</tex> - количество разрядов, n - количество входных данных, T(n) - сложность устойчивой сортировки, тогда сложность цифровой сортировки - <tex>О(m*T(n))</tex>.
 +
При использовании сортировки подсчетом получаем линейную зависимость.
 +
==Псевдокод==
 +
Radix_sort
 +
for i = 1 to m
 +
  do устойчивая сортировка массива по i-ому разряду

Версия 18:43, 15 июня 2011

Цифровая сортировка — алгоритм сортировки за линейное время.

Алгоритм

При цифровой сортировке данные разбиваются на "разряды", после этого данные сортируются какой-либо устойчивой сортировкой по каждому разряду, в порядке от младшего разряда к старшему. Для чисел наиболее часто в качестве устойчивой сортировки применяют сортировку подсчетом.

Сложность

Пусть [math]m[/math] - количество разрядов, n - количество входных данных, T(n) - сложность устойчивой сортировки, тогда сложность цифровой сортировки - [math]О(m*T(n))[/math]. При использовании сортировки подсчетом получаем линейную зависимость.

Псевдокод

Radix_sort for i = 1 to m

  do устойчивая сортировка массива по i-ому разряду