Глупая сортировка | это... Что такое Глупая сортировка? (original) (raw)
Глупая сортировка (англ. Stupid sort) — простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. Сложность алгоритма: .
Содержание
Алгоритм
Имеет нечто общее с сортировкой пузырьком: идёт поиск от начала массива, текущий элемент сравнивается со следующим, если следующий меньше, то производится обмен и возврат в начало цикла.
Примеры реализации
Псевдокод
stupidSort(array){ i := 0 while (i < length(array) - 1) if (array[i + 1] < array[i]) then { swap(array[i], array[i + 1]) i := 0 } else i := i + 1 }
Код на С
// A - сортируемый массив, n - количество элементов void stupidSort(int *A, int n) { int i = 0, tmp; while (i < n - 1) { if (A[i+1] < A[i]) { tmp = A[i]; A[i] = A[i+1]; A[i+1] = tmp; i = 0; } else i++; } }
Код на PHP
function stupidSort(&$Array) { $i = 0; n=count(n = count(n=count(Array); while ($i < $n - 1) { if ($Array[$i+1] < Array[Array[Array[i]) { list($Array[$i], Array[Array[Array[i+1]) = array($Array[$i+1], Array[Array[Array[i]); $i = 0; } else $i++; } }
Код на Python
def stupidSort(data): i = 0 n = len(data) - 1 while i < n: if data[i+1] < data[i]: data[i], data[i+1] = data[i+1], data[i] i = 0 else: i += 1 return data
Код на Java
public Comparable[] stupidSort(Comparable[] data) { int i = 0; int n = data.length - 1; Comparable temp;
while (i < n) {
if (data[i+1].compareTo(data[i]) < 0) {
temp = data[i + 1];
data[i + 1] = data[i];
data[i] = temp;
i = 0;
} else {
i++;
}
}
return data;
}
Код на Perl
@out=(4,8,9,6,3,2,5,7,1,5,4,7,89,3,2,5,64,5,4,2,5,8,8); while($i<$#out+1){ if($out[$i+1]lt$out[$i]){ ($out[$i],$out[$i+1],$i)=($out[$i+1],$out[$i],0); }else{ ++$i; } }
Код на Javascript
Array.prototype.stupidSort = function (f) { f = f || function (x, y) { return x - y; }; var t = this, i = 0, n = t.length - 1; while (i < n) { if (f(t[i + 1], t[i]) > 0) { var a = t[i] t[i] = t[i + 1]; t[i + 1] = a; i = 0; } else { i++; } } }
Алгоритмы сортировки | |
---|---|
Теория | Сложность • О-нотация • Отношение порядка • Типы сортировки: Устойчивая • Внутренняя • Внешняя |
Алгоритмы | Обменные: Пузырьком • Перемешиванием • Гномья • Быстрая • Расчёской • Выбором: Выбором • Пирамидальная • Вставками: Вставками • Шелла • Деревом • Слиянием: Слиянием • Без дополнительной памяти • Без сравнений: Подсчётом • Поразрядная • Блочная • Гибридные: Introsort • Timsort • Прочее: Топологическая • Сети • Непрактичные: Bogosort • Stooge sort • Глупая • Блинная |