Глупая сортировка

Глупая сортировка

Глупая сортировка (англ. 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($Array);
    while ($i < $n - 1)
    {
        if ($Array[$i+1] < $Array[$i])
        {
            list($Array[$i], $Array[$i+1]) = array($Array[$i+1], $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++;
        }
    }
}



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Глупая сортировка" в других словарях:

  • Сортировка Шелла — (англ. Shell sort)  алгоритм сортировки, являющийся усовершенствованным вариантом сортировки вставками. Идея метода Шелла состоит в сравнении элементов, стоящих не только рядом, но и на определённом расстоянии друг от друга. Иными… …   Википедия

  • Сортировка выбором — (Selection sort)  алгоритм сортировки. Может быть реализован и как устойчивый и как неустойчивый. На массиве из n элементов имеет время выполнения в худшем, среднем и лучшем случае Θ(n2), предполагая что сравнения делаются за постоянное… …   Википедия

  • Сортировка вставками — Сортировка вставками  простой алгоритм сортировки. Хотя этот алгоритм сортировки уступает в эффективности более сложным (таким как быстрая сортировка), у него есть ряд преимуществ: эффективен на небольших наборах данных, на наборах данных до …   Википедия

  • Сортировка пузырьком — Сортировка простыми обменами, сортировка пузырьком (англ. bubble sort)  простой алгоритм сортировки. Для понимания и реализации этот алгоритм  простейший, но эффективен он лишь для небольших массивов. Сложность алгоритма: O(n²).… …   Википедия

  • Сортировка подсчётом — алгоритм сортировки, в котором используется диапазон чисел сортируемого массива (списка) для подсчёта совпадающих элементов. Применение сортировки подсчётом целесообразно лишь тогда, когда сортируемые числа имеют (или их можно отобразить в)… …   Википедия

  • Сортировка перемешиванием — (Шейкерная сортировка) (англ. Cocktail sort) разновидность пузырьковой сортировки. Анализируя метод пузырьковой сортировки можно отметить два обстоятельства. Во первых, если при движении по части массива перестановки не происходят, то эта… …   Википедия

  • Сортировка расчёской — (англ. comb sort)  это довольно упрощённый алгоритм сортировки, изначально спроектированный Влодзимежом Добосиевичем в 1980 г. Позднее он был переоткрыт и популяризован в статье Стивена Лэйси и Ричарда Бокса в журнале Byte Magazine …   Википедия

  • Сортировка слиянием — Действие алгоритма на примере сортировки случайных точек. Сортировка слиянием (англ. merge sort) алгоритм сортировки, который упорядочивает списки (или другие структуры данных, доступ к элементам которых можно получать только п …   Википедия

  • Сортировка с помощью двоичного дерева — Пример двоичного дерева Сортировка с помощью двоичного дерева (сортировка двоичным деревом, сортировка деревом, древесная сортировка, сортировка с помощью бинарного дерева, англ. …   Википедия

  • Устойчивая сортировка — Устойчивая (стабильная) сортировка  сортировка, которая не меняет относительный порядок сортируемых элементов, имеющих одинаковые ключи. Устойчивость является очень важной характеристикой алгоритма сортировки, но, тем не менее, она… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»