Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Проги, ЛЕКЦИИ / Программирование Лекция 5 массивы.pps
X
- •Структурированные
- •Описание массива
- •Двумерные массивы(матрицы).
- •Действия с массивами.
- •Действия с массивами.
- •Действия с массивами.
- •Нахождение min (max) элемента
- •Сортировка элементов
- •Сортировка элементов
- •Быстрая сортировка (метод Хоара)
- •Быстрая сортировка (метод Хоара)
- •Быстрая сортировка (метод Хоара)
- •Быстрая сортировка (метод Хоара)
- •Быстрая сортировка (метод Хоара)
- •Быстрая сортировка (метод Хоара)
- •Пример
- •Пример
- •Пример
- •Пример
- •Быстрая сортировка
- •Сортировка элементов
- •Алгоритмы поиска
- •Структурированные
- •Действия со строками
- •Операции со строками
- •Функции
- •Процедуры
- •Пример программы с ОШИБКОЙ
- •Правильный вариант
- •Вариант с POS
Быстрая сортировка (метод Хоара)
a1 a2 a3… an-1 an
i:=i+1 j:=right
Быстрая сортировка (метод Хоара)
a1 a2 a3… an-1 an
i:=i+1 j:=right
ai>aj ОБМЕН
Быстрая сортировка (метод Хоара)
a1 a2 an… an-1 a3
i |
j=j-1 |
|
|
Фиксируем i |
|
Пока ai<aj j:=j-1
Быстрая сортировка (метод Хоара)
a1 a2 |
a… |
a |
a3 |
|
n |
|
n-1 |
ij:=j-1
ai>aj ОБМЕН
Быстрая сортировка (метод Хоара)
a1 a2 a3… ac …an-1 an
left |
j=i |
right |
Повторяем пока не i=j=c
Рекурсивно применить к правой [c,right] и левой [left,c] сторонам
Пример
1 6 8 4 2 3
i |
j |
|
Пример
1 3 8 4 2 6
i |
j |
|
Пример
1 2 8 4 3 6
i j
Пример
1 2 3 4 8 6
i j
Быстрая сортировка
if p<q then {p,q - индексы начала и конца сортируемой части массива}
begin
r:=A[p]; {r:=A[random(q-p)+p]; -вероятностный метод Хоара} i:=p-1;
j:=q+1; while i<j do
begin |
|
repeat |
i:=i+1; until A[i]>=r; |
repeat |
j:=j-1; until A[j]<=r; |
if i<j then |
|
begin |
T:=A[i]; A[i]:=A[j]; A[j]:=T; end; |
end; |
|
end;
Соседние файлы в папке Проги, ЛЕКЦИИ