25
при сортировке по возрастанию отсортированная часть массива формируется
путем выталкивания («всплывания») при каждом просмотре наибольшего из
значений в неотсортированной части массива. Соответственно,
при сорти-
ровке по убыванию «всплывают» минимальные значения. Алгоритм сорти-
ровки простым обменом приведен в листинге 2.7.
Листинг 2.7. Сортировка методом пузырька
public void SortBubl(int[] a)
{
int N = a.Length;
for (int i = 1; i < N; i++)
for(int j =L-1; j >= i; j--)
if (a[j-1] > a[j])
{
int t = a[j-1];
a[j-1] = a[j];
a[j] = t;
}
}
Число сравнений в этом алгоритме равно
2
.
2
N
N
C
−
=
(2.7)
Минимально число перестановок
равно нулю для массива, упорядо-
ченного по возрастанию, и совпадает с числом сравнений для массива, упо-
рядоченного по убыванию. Поэтому
2
.
4
ср
N
N
M
−
=
(2.8)
Отсюда следует, что данный алгоритм
обладает квадратичной скоро-
стью роста
O(N
2
).
2 / 23