Пример реализации на Kotlin: fun combSort(input: Array) {
var gap = input.size
if (gap <= 1) return // если массив <= 1, то он считается отсортированным
var swaps = false
while (gap > 1 || swaps) {
gap = (gap / 1.247331).toInt()
if (gap < 1) gap = 1
var i = 0
swaps = false
while (i + gap < input.size) {
if (input[i] > input[i + gap]) {
val tmp = input[i]
input[i] = input[i + gap]
input[i + gap] = tmp
swaps = true
}
i++
}
}
}
Пример реализации на С++:
Сортировка вставками / Insertion sort Сортировка вставками - алгоритм, при котором каждый последующий элемент массива сравнивается с предыдущими элементами (отсортированными) и вставляется в нужную позицию.
Общая идея алгоритма:
Сравниваем второй элемент с первым элементом массива и при необходимости меняем их местами. Условно эти элементы (первый и второй) будут являться отсортированным массивом, остальные элементы - неотсортированным.
Сравниваем следующий элемент из неотсортированного массива с элементами отсортированного и вставляем в нужную позицию.
Повторям шаг 2 до тех пор, пока в неотсортированном массиве не останется элементов.