Есть ли название для моего алгоритма сортировки? - PullRequest
1 голос
/ 28 марта 2019

В школьном задании я должен был создать алгоритм сортировки.

Я сделал следующее:

    //array "ints" has already been declared
    int s = 0;
    for(int i=0;i<ints.length;i++) {
        for(int j=i+1; j<ints.length; j++) {
            if(ints[i]>ints[j]) {
                s = ints[j];
                ints[j]=ints[i];
                ints[i]=s;  
            }
        }
    }

Учитель назвал приведенный выше алгоритм «пузырьковая сортировка». Однако из того, что я могу найти, (в Google) приведенный выше код выглядит как , а не пузырьковая сортировка, а пузырьковая сортировка больше похожа на приведенный ниже код: (вероятно, не самая эффективная версия это, но что угодно)

    //array "ints" has already been declared
    int sub = 0;
    int swaps = 100;
    if (ints.length>1) {
        while(swaps>0) {
            swaps=0;
            for(int i=0; i<ints.length-1; i++) {
                if(ints[i]>ints[i+1]) {
                    sub = ints[i+1];
                    ints[i+1]=ints[i];
                    ints[i]=sub;
                    swaps++;
                }
            }
        }
    }

Я уверен, что на самом деле я не изобрел новый алгоритм сортировки, но я не могу найти алгоритм сортировки, который использует тот же процесс, что и код, который я написал.

Есть ли название для моего алгоритма?

Обратите внимание, что он сравнивает несмежные значения и процесс сортировки, и алгоритм не обязательно завершается после раунда прохождения алгоритма без замены. Оба из них указывают, что это не пузырьковая сортировка. Возможно, это сортировка выбора версии.


Я не хочу знать, насколько это эффективно; Я работаю над тем, чтобы выяснить это самостоятельно.

1 Ответ

2 голосов
/ 28 марта 2019

Похоже, это модифицированный выбор сортировки , на что указывают Марака и Срини.

См., Например, эта страница анимации .Bubble Sort (с заданной длиной массива / списка) занимает больше или меньше времени в зависимости от того, отсортирован ли массив почти или нет.Сортировка выбора (с заданным размером массива / списка) занимает точно такое же время независимо от того, как был отсортирован список изначально.Мой алгоритм в основном похож на сортировку выбора, за исключением того, что он имеет много лишних / ненужных перестановок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...