Разделы презентаций


Структуры и алгоритмы обработки данных

Содержание

Сортировка 4 2Нижняя граница задачи сортировкиВопрос: существует ли алгоритм сортировки, основанный на сравнениях и решающий задачу за меньшее число операций, чем O (n log n) при любых входных данных? Сортировка с

Слайды и текст этой презентации

Слайд 1Структуры и алгоритмы обработки данных, 2
Лекция 5
Сортировка (продолжение)

Нижняя граница задачи

сортировки
Оптимальная сортировка
Поразрядная сортировка

Структуры и алгоритмы обработки данных, 2Лекция 5Сортировка (продолжение)Нижняя граница задачи сортировкиОптимальная сортировкаПоразрядная сортировка

Слайд 2Сортировка 4 2
Нижняя граница задачи сортировки
Вопрос: существует ли алгоритм сортировки, основанный

на сравнениях и решающий задачу за меньшее число операций,
чем

O (n log n) при любых входных данных?

Сортировка с минимальным числом сравнений
(избыточные сравнения не выполняются)
Деревья решений (сравнений)
Для простоты – все ключи различны.
Основная операция сравнения: ki < kj
Сортировка 4							2Нижняя граница задачи сортировкиВопрос: существует ли алгоритм сортировки, основанный на сравнениях и решающий задачу за меньшее

Слайд 3Сортировка 4 3
Сортировка с минимальным числом сравнений
Деревья решений (сравнений)
a, b, c
a→

b, c
b → a, c
a → c → b
a

→ b → c

b → a → c

a → b
c↑

c → a → b,

b → a
c↑

b → c → a

c → b → a

n = 3, число перестановок и листьев = 3! = 6

да

нет

Сортировка 4							3Сортировка с минимальным числом сравненийДеревья решений (сравнений)a, b, ca→ b, cb → a, ca → c

Слайд 4Сортировка 4 4
Сортировка с минимальным числом сравнений
Деревья решений (сравнений)
a, b, c,

d
a → b
c, d
b → a
c, d
a →

b
d → c

b → a
c → d

n = 4, число перестановок и листьев = 4! = 24

a → b
c → d

b → a
d → c

Сортировка 4							4Сортировка с минимальным числом сравненийДеревья решений (сравнений)a, b, c, da → b c, db → a

Слайд 5Сортировка 4 5
Деревья решений (сравнений)
b → d
a↑ c↑
d

→ b
c↑ a↑
a → c →

b → d

a → b → c → d

c → d → a → b

a → b → d
c↑

c → a → b → d

c → a → d → b

a → c → d → b

n = 4, число перестановок и листьев = 4! = 24

c → d → b
a↑

a → b
c → d

Сортировка 4							5Деревья решений (сравнений)b → d  a↑  c↑d → b   c↑  a↑a

Слайд 6Сортировка 4 6
Деревья решений (сравнений)
Пусть m высота дерева (максимальное число сравнений).
2m

≥ число листьев ≥ n!
(число листьев должно быть не

менее числа исходов)
m ≥ ⎡log2 n!⎤

Итак, утверждение:
Для любого алгоритма сортировки, основанного на сравнениях, всегда можно подобрать такие исходные данные, что применение алгоритма потребует не менее ⎡log2 n!⎤ шагов.






Сортировка 4							6Деревья решений (сравнений)Пусть m высота дерева (максимальное число сравнений).2m ≥ число листьев ≥ n! (число листьев

Слайд 7Сортировка 4 7
Формула Стирлинга





⎡log2 n!⎤ ≤ log2 n! + 1
⎡log2 n!⎤

= n log2 n – n log2 e + (1/2)

log2 n + O(1)

Итак, сложность задачи сортировки есть Ω (n log2 n),
а алгоритмы быстрой сортировки и пирамидальной сортировки решают задачу за время Θ (n log2 n)
Сортировка 4							7Формула Стирлинга⎡log2 n!⎤ ≤ log2 n! + 1⎡log2 n!⎤ = n log2 n – n log2

Слайд 8Сортировка 4 8
Оптимальная сортировка



Бинарные вставки:
Пусть S(n) – минимальное число сравнений,

достаточное для сортировки. S(n) ≥ ⎡log2 n!⎤. ?

S(n) = ⎡log2 n!⎤ ?
Например, S(5) = 7 (см.далее), а S(12) = 30 (!)
Сортировка 4							8Оптимальная сортировкаБинарные вставки: Пусть S(n) – минимальное число сравнений, достаточное для сортировки. S(n) ≥ ⎡log2 n!⎤.

Слайд 9Сортировка 4 9
Оптимальная сортировка


S(5) = 7 ?
k1, k2, k3, k4, k5


1-е сравнение: k1 : k2 → max(k1, k2)
2-е сравнение:

k3 : k4 → max(k3, k4)
3-е сравнение: max(k1, k2) : max(k3, k4)

e

b

d

c

a


Сортировка 4							9Оптимальная сортировкаS(5) = 7 ?k1, k2, k3, k4, k5 1-е сравнение:  k1 : k2 →

Слайд 10



Сортировка 4 10
Оптимальная сортировка


4 и 5-е сравнения: e среди a

сравнения
2 сравнения
1 или 2 сравнения

Сортировка 4							10Оптимальная сортировка4 и 5-е сравнения: e среди a

Слайд 11Сортировка 4 11
Поразрядная сортировка
(Распределяющая сортировка)
Пример 1 (с картами).
Карта = (масть,

достоинство)
Масть: ♣ ‑ трефа, ♦ ‑ бубна, ♥ ‑ черва,

♠ ‑ пика
Достоинство: 2, 3, 4, 5, 6, 7, 8, 9, 10, В, Д, К, Т
Порядок по масти: ♣ < ♦ < ♥ < ♠.
Порядок по достоинству: 2<3<4<5<6<7<8<9<10<В<Д<К<Т

Порядок карт лексикографический:
♣2<♣3<♣4<♣5<♣6<♣7<♣8<♣9<♣10<♣В<♣Д<♣К<♣Т<
♦2<♦3<♦4<♦5<♦6<♦7<♦8<♦9<♦10<♦В<♦Д<♦К<♦Т<
♥2<♥3<♥4<♥5<♥6<♥7<♥8<♥9<♥10<♥В<♥Д<♥К<♥Т<
♠2<♠3<♠4<♠5<♠6<♠7<♠8<♠9<♠10<♠В<♠Д<♠К<♠Т

Сортировка 4							11Поразрядная сортировка (Распределяющая сортировка)Пример 1 (с картами).	Карта = (масть, достоинство)	Масть: ♣ ‑ трефа, ♦ ‑ бубна,

Слайд 12Сортировка 4 12
Поразрядная сортировка
Сортировка колоды карт в лексикографическом порядке:
1 шаг

– распределяем по достоинству (раскладываем) на кучки («лицом» вверх)
2

В

3

Д

К

Т

4

5

6

7

8

9

10

Затем складываем

кучки друг на друга
(последовательно кучки большего достоинства сверху).
2 шаг – держим колоду рубашкой вниз и распределяем
на кучки по масти (карты кладем лицом вверх).
При этом в каждой «кучке по масти» карты лягут в порядке возрастания достоинства вниз кучки.
Сортировка 4							12Поразрядная сортировка Сортировка колоды карт в лексикографическом порядке:1 шаг – распределяем по достоинству (раскладываем) на кучки

Слайд 13Сортировка 4 13
Поразрядная сортировка
В итоге получим 4 кучки с верхними

картами: ♣ < ♦ < ♥ < ♠

2 ♣

2 ♦

2



2♥

Заключительный шаг – последовательно складываем, начиная справа, левую кучку на правую.

Задание: найти колоду карт и поупражняться

Сортировка 4							13Поразрядная сортировка В итоге получим 4 кучки с верхними картами: ♣ < ♦ < ♥ <

Слайд 14Сортировка 4 14
Поразрядная сортировка
Пример 2 (с числами).
Рассмотрим целые (положительные) трехразрядные

числа
в позиционной шестиричной системе счисления,
т.е. каждый разряд содержит цифры

0, 1, 2, 3, 4, 5
Например, пусть дана последовательность из 9 чисел
203, 045, 141, 405, 321, 522, 130, 054, 513
1 шаг – распределяем числа последовательности сначала по младшей цифре по ящикам с «именами»: «0», «1», «2», «3», «4», «5».
Ящики заполняются снизу вверх.
Сортировка 4							14Поразрядная сортировка Пример 2 (с числами).Рассмотрим целые (положительные) трехразрядные числав позиционной шестиричной системе счисления, т.е. каждый

Слайд 15Сортировка 4 15
Поразрядная сортировка
203, 045, 141, 405, 321, 522, 130,

054, 513
Сцепляем последовательно слева направо содержимое ящиков в одну последовательность,

так, что нижнее число правого ящика следует за верхним числом левого соседнего ящика (внутри ящиков последовательность расположена снизу вверх). Таким образом, получим последовательность
130, 141, 321, 522, 203, 513, 054, 045, 405.
Заметим, что младшие цифры этой последовательности упорядочены по неубыванию.
Сортировка 4							15Поразрядная сортировка 203, 045, 141, 405, 321, 522, 130, 054, 513Сцепляем последовательно слева направо содержимое ящиков

Слайд 16Сортировка 4 16
Поразрядная сортировка
130, 141, 321, 522, 203, 513, 054,

045, 405
2 шаг – аналогичным образом распределяем по ящикам числа

полученной последовательности по средней цифре.

Повторяя сцепление содержимого ящиков, получим последовательность
203, 405, 513, 321, 522, 130, 141, 045, 054,
упорядоченную по двум младшим цифрам.

Сортировка 4							16Поразрядная сортировка 130, 141, 321, 522, 203, 513, 054, 045, 4052 шаг – аналогичным образом распределяем

Слайд 17Сортировка 4 17
Поразрядная сортировка
203, 405, 513, 321, 522, 130, 141,

045, 054
3 шаг – аналогичным образом распределяем по ящикам числа

полученной последовательности по старшей цифре.

Повторяя сцепление содержимого ящиков, получим упорядоченную последовательность
045, 054, 130, 141, 203, 321, 405, 513, 522.

Сортировка 4							17Поразрядная сортировка 203, 405, 513, 321, 522, 130, 141, 045, 0543 шаг – аналогичным образом распределяем

Слайд 18Сортировка 4 18
Алгоритм поразрядной сортировки
В общем случае даны числа (ключи):
x1,

x2, x3,…, xn.
Каждый ключ состоит из p разрядов:
( ∀ i ∈1..n: xi = (xi(p), xi(p−1),…, xi(1))

),
а каждый q-й разряд представлен цифрой xi(q) ∈0..r−1.
Тогда
(xi < xj) ↔ 
(∃ t ∈1..p: (∀ q ∈ t + 1..p: xi(q) = xj(q)) & (xi(t) < xj(t))).
Сортировка 4							18Алгоритм поразрядной сортировкиВ общем случае даны числа (ключи): x1, x2, x3,…, xn.Каждый ключ состоит из p

Слайд 19Сортировка 4 19
Алгоритм поразрядной сортировки

Для представления «ящиков» и их сцепления в

новую последовательность используем очереди:

Q – общая очередь (исходная, промежуточные и

результирующая последовательности);
q[0], q[1],…, q[r − 1] – очереди по каждой r-ичной цифре («ящики»).

Сортировка 4							19Алгоритм поразрядной сортировкиДля представления «ящиков» и их сцепления в новую последовательность используем очереди:	Q – общая очередь

Слайд 20Сортировка 4 20
Алгоритм поразрядной сортировки

Алгоритм:
Create(Q); Create(q[*]);
for j := 1 to p do
for k := 0 to r − 1 do

Empty(q[k]) od;
while not Null(Q) do
x ← Q;
Пусть x = (x(p), x(p−1),…, x(1)), тогда
q[x(j)] ← x
od {while};
Q ← сцепление(q[0], q[1],…, q[r − 1])
od {for

j}
Сортировка 4							20Алгоритм поразрядной сортировкиАлгоритм:	Create(Q); Create(q[*]);	for j := 1 to p do		for k := 0 to r − 1 do Empty(q[k]) od;		while not Null(Q) do			x ← Q;			Пусть x = (x(p), x(p−1),…, x(1)), тогда			q[x(j)] ← x		od {while};		Q ← сцепление(q[0],

Слайд 21Сортировка 4 21
Алгоритм поразрядной сортировки

Подсчитаем количество операций.
Внешний цикл по разрядам

выполняется p раз.
Каждая итерация этого цикла для каждого из

n чисел выполняет извлечение и запись в очередь, т.е. всего 2n таких операций.
Кроме того, на каждой итерации происходит r − 1 сцепление очередей.
Таким образом на одной итерации требуется 2n + r − 1 операций,
а всего по всем разрядам O (p n + p r ) операций.

Сравнение с O ( n log n ) !...
Сортировка 4							21Алгоритм поразрядной сортировкиПодсчитаем количество операций. Внешний цикл по разрядам выполняется p раз. Каждая итерация этого цикла

Слайд 22


КОНЕЦ ЛЕКЦИИ

КОНЕЦ  ЛЕКЦИИ

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика