ВУЗ:
Составители:
Рубрика:
f
l
Находим
индекс
нужной
ячейки
(1
ос)
в
отрезке
//
tll(!,,4гrо.у[О
..un
..
зопеа]
для
вставки
Э.7С
..
мента
//
the/lr,.a}'[unsorledj.
являющегося
первым
элементом
//
пеупорядоченной
части;
при
необходимости
выполняем
//
сдвиг
элементов.
освобождая
место
для
вставки.
Еляа'Гуре
пехшет
-=
f}le~4"/Y1))/unso,.tedl~"
int
/ос
=
ипзопеа:
[о«
(:(loc
>-
О)
&&
(111е.Агrll):
[юс-!
J~>
пехшет)
:--lo(~
//
(7()(114-~?(Je)\4
отрезок
tlll!/lГГ(lJ'[!()('-lJ
//
вправо
tllеАГ"СlуI1()(~./
-==
tJlcA
J'*гау!1()с~-
Г],
/гДиигностическое
утверждение:
llчеiiка'//
tI1еАГ1·(,))[I()с~.1
содержит
элемент
пехл
Иет
//
В
с
т
а
вляем
э.н
е./\'
1
е:
i
т
п
е.Х
t1t
е
111
J
11
Z~
-{.'
/'
//
n(JflCZf
1
(ик.
..
па
J()r
Анализ.
Внешний
цикл
в
функции
insertionSort
выполняется
n-l
раз.
Этот
цикл
содержит
внутренний
цикл,
который
выполняется
не
больше
чем
unsorted
раз
для
значений
переменной
unsorted,
изменяющихся
от
1
до
n-l.
Таким
образом,
в
худшем
случае
алгоритм
выполняет
1+ 2+
...
+
(n-l)
==
n * (n-l )/2
сравнений.
Кроме
того,
в
худшем
случае
столько
же
раз
внутренний
цикл
сдвигает
элементы.
Во
внешнем
цикле
перемещение
элементов
на
каждой
итерации
выполняется
дважды,
т.е.
в
сумме
2
*(n-l)
раз.
Итак,
подведем
итог:
в
наихудшем
варианте
выполняется.
n *
(n-l)
+ 2 *
(n-l)
==
n
2
+ n - 2
основных
операций.
Следовательно,
в
худшем
случае
сложность
алгоритма
сортировки
~
методом
вставок
равна
О(n").
Для
небольших
массивов,
скажем,
содержащих
не
более
25
элементов,
алгоритм
сортировки
методом
вставки
предпочтительнее,
поскольку
он
понятнее
остальных
алгоритмов.
Однако
для
больших
массивов
этот
метод
совершенно
неэффективен.
Сортировка
слиянием
Два
важных
алгоритма
сортировки,
основаны
на
принципе
«разделяй
и
властвуй»,
сортировка
слиянием
и
быстрая
сортировка,
имеют
элегантное
рекурсивное
воплощение
и
чрезвычайно
эффективны.
24
Страницы
- « первая
- ‹ предыдущая
- …
- 23
- 24
- 25
- 26
- 27
- …
- следующая ›
- последняя »