Глупая сортировка | это... Что такое Глупая сортировка? (original) (raw)

Глупая сортировка (англ. Stupid sort) — простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. Сложность алгоритма: O(n^3).

Содержание

Алгоритм

Имеет нечто общее с сортировкой пузырьком: идёт поиск от начала массива, текущий элемент сравнивается со следующим, если следующий меньше, то производится обмен и возврат в начало цикла.

Примеры реализации

Псевдокод

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++; } } }

Просмотр этого шаблона Алгоритмы сортировки
Теория СложностьО-нотацияОтношение порядкаТипы сортировки: УстойчиваяВнутренняяВнешняя
Алгоритмы Обменные: ПузырькомПеремешиваниемГномьяБыстраяРасчёскойВыбором: ВыборомПирамидальнаяВставками: ВставкамиШеллаДеревомСлиянием: СлияниемБез дополнительной памятиБез сравнений: ПодсчётомПоразряднаяБлочнаяГибридные: IntrosortTimsortПрочее: ТопологическаяСетиНепрактичные: BogosortStooge sortГлупаяБлинная