Виды алгоритмов сортировки Сортировка пузырьком / Bubble sort



бет2/12
Дата16.10.2023
өлшемі121,16 Kb.
#115872
1   2   3   4   5   6   7   8   9   ...   12
Сложность

Лучшее

Среднее

Худшее

Время

O(n)

O(n2)

O(n2)

Память



O(1)

Сортировка перемешиванием / Shaker (cocktail, ripple, shuffle, shuttle) sort
Также известна как шейкерная или коктейльная сортировка.
Сортировка перемешиванием - это разновидность сортировки пузырьком. Отличие в том, что данная сортировка в рамках одной итерации проходит по массиву в обоих направлениях (слева направо и справа налево), тогда как сортировка пузырьком - только в одном направлении (слева направо).
Общая идея алгоритма:

Пример реализации на Kotlin:

fun cocktailSort(a: IntArray) {


fun swap(i: Int, j: Int) {
val temp = a[i]
a[i] = a[j]
a[j] = temp
}
do {
var swapped = false
for (i in 0 until a.size - 1)
if (a[i] > a[i + 1]) {
swap(i, i + 1)
swapped = true
}
if (!swapped) break
swapped = false
for (i in a.size - 2 downTo 0)
if (a[i] > a[i + 1]) {
swap(i, i + 1)
swapped = true
}
} while (swapped)
}


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   12




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет