Методы сортировок и их реализации. Беляева И.В - 29 стр.

UptoLike

Составители: 

!()Г
(;
,/iгstl
<~
=-
Газ:
1,.
+-
4~fi"$·11.
-+-
-+
таех)
//
Инвариант:
отрезок
tеmjJ.4Г'lt+lIJ'l/;,-stl
..
таех-Г]
//
упорядочен.
lеn1/JL4ггu}'[indех]
о:::::
lhеL1Г/'llJ'[jiгstlj
:
//(/"1\оnиров{11nЬ
в1110РОЙ
подмассив.
ее.'!
и
необходимо
(
-..
2
1...,
j"
'")
. d '
.
/
'
<~=
lQsf.:.,-
+-
'+-.
[Jtf.,'t..:;,
+-zn
С.Х)
()I·
,:.I/I"sl
//
Инвариант:
отрезок
tеm/J/1Гlt+{1.}'Lii,.stl
..
таех-Г]
//
упорядочен
(етр
А
rlt"(l)'[index]
11'zеL1'·ГО)i[/iг.\'12],·
//
Копируем
результат
обратно
в
исходный
массив
[о»
(index
==,!IГSI;
таех
-<-=
[ах):
-+
+indc.x)
1
пе
А
пауйпаех]
I
е
nlp~'<11~/~(lJ'[in(fex~j,'
}
//
Конец
функции
тепг«
1,'о;t!111егgеsоrl
(Гииа'Гуре
Ihe-<4rf·С~);'f],
int.iirst. int I(ISI)
//
---------------------------------------------------------------------------
//
Упорядочивает
элементы
массива
в
возрастающсм
порядке.
//
Предусл
ов
ие:
отрезок
l}lе/:1г·rс/у·[/ZI·SI"
..
Гаы]
массив,
Постуслояие:
.t'1/1aC
O(:116
lJlеАГI·С1J'[fiг.\·I
..
lа,,\'tl
упорядочен
//
по
возрастанию.
//
Вы
зываем
ые
функции:
тепге.
~/
---------------------------------------------------------------------------
(
1
//
Упорядоч
иваем
каждую
из
частей
массива
Гп:
тй!
==
(fi1",,~)t
+ 1(},\'I)/2;
//
Ин
дек
..
среднего
эл
ем
ен
т
а
//'
Упорядоч
116
аем
лев
..
,
чо
1]().71()t)
111(1' 1/1C
А
/'/'а..\'
{fi,·s[
..
/'11
i('-I
П1егgе5;()rl(1hеАгга)',
.11,",S1,
пи
а);
//
Упорядочиваем
правую
полоеину
thej4/·1"(!Y'[nlid--+-l ..
1{15;~1
lnel·f,;e.\'()1"/(lheArrcl.J',
тл
а
: 1,
I(/~""'[)_:
/;/
Объединяем
две
половины
тее
г«
(tlle~4
ккау.
.,firs1, /11id,
'а5;1):
}
/~/
Конец
операт
ора
~'f'
}
//
Конец
функции
nlеrкс>-\'()гl
Анализ.
Поскольку
основные
операции
в
этом
алгоритме
выполняются
на
этапе
слияния,
начнем
анализ
с
него.
На
каждом
шаге
происходит
объединение
подмассивов
theArray
[first. . .
тла]
и
theArray
/mid+
1
..
.last}.
На
рис.lО
показан
пример,
в
котором
требуется
выполнить
максимальное
количество
сравнений.
Если
общее
количество
элементов
объединяемых
отрезков
массива
равно
n.,
то
при
их
слиянии
потребуется
выполнить
n-l
сравнений.
(Например,
на
рис.
1
О
показан
массив,
состоящий
из
шести
элементов,
следовательно,
выполняется
пять
сравнений.)
Кроме
того,
после
сравнений
осуществляется
копирование
n
элементов
временного
массива
в
исходный.
Таким
образом,
на
каждом
шаге
выполняется
3
*n-l
основных
операций.
28