и поиска.
Данные задачи применяются как сами по себе, так
и входят как подзадачи в состав более сложных задач. Например, дан массив N элементов, из которого надо удалить все дублирующиеся элементы. Решение сравнения каждого элемента с остальными потребует T(N2) времени. Однако если предварительно отсортировать массив (на что, как увидим позже, требуется T(N*log2(N)) времени), то найти все дубли можно за T(N) времени, сравнивая только соседние элементы, так что общее время решения задачи ‒ T(N*log2(N)).
Здесь задача сортировки вошла в другую задачу в качестве подзадачи.
Задача сортировки формулируется следующим образом:
На вход алгоритма подается последовательность из n элементов а1,а2,...,аn; на выходе требуется получить некоторую перестановку входной последовательности a'1,a'2,...,а'n такую, что a'1≤a'2≤…≤а'n .
Алгоритмы сортировки можно разделить на алгоритмы внутренней сортировки для сортировки данных, хранящихся во внутренней оперативной памяти компьютера, и внешней сортировки – для сортировки больших объемов данных, хранящихся в файлах внешней (например, дисковой) памяти. В данном учебном курсе будут рассматриваться только алгоритмы внутренней сортировки.
И+ПРГ




![Сортировка-Пузырёк Выборочная QuickSort 1. Массив M[N]. Назнач. I и J. 2. Уст. нач. 1. Массив M[N]. Назнач. I и J. 2. Уст. нач. знач. I=1 и J=N. 3. Выб.](/img/tmb/2/148785/f32c29f0f6db6e63b237a7308858920e-800x.jpg)

![Сортировка-Пузырёк Выборочная QuickSort Рассмотрим пример: Дано множество {6,3,4,8,2,9} -> d=[n/2]=[6/2]=3 ->{6,3,4,8,2,9} - сравниваем 6 Рассмотрим пример: Дано множество {6,3,4,8,2,9} -> d=[n/2]=[6/2]=3 ->{6,3,4,8,2,9} - сравниваем 6 и 8 ->{6,2,4,8,3,9} - сравниваем 3](/img/tmb/2/148785/3fccec807db97592604c8bb9bff7e4d1-800x.jpg)

