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



бет9/12
Дата16.10.2023
өлшемі121,16 Kb.
#115872
1   ...   4   5   6   7   8   9   10   11   12
Пример реализации на С++:



Сложность

Лучшее

Среднее

Худшее

Время

O(n log n)

O(n log n)

O(n log n) или O(n) (при одинаковых ключах)

Память



O(1)

Сортировка подсчётом / Counting sort
Сортировка подсчётом - это алгоритм, основанный на подсчёте повторяющихся элементов в массиве.
Общая идея алгоритма (простой вариант):

Пример реализации на Kotlin:
fun countingSort(array: IntArray) {
if (array.isEmpty()) return

// вычисляем минимальное и максимальное значение в массиве


val min = array.min()!!
val max = array.max()!!

// создаём вспомогательный массив, все элементы которого == 0


val count = IntArray(max - min + 1)

// подсчитываем числа и записываем во вспомогательный массив


for (number in array) count[number - min]++

// переносим значения в первоначальный массив


var z = 0
for (i in min..max)
while (count[i - min] > 0) {
array[z++] = i
count[i - min]--
}
}


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




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

    Басты бет