Вернуться




Сортировка перемешиванием в C: основные сведения об этом методе



Сортировка перемешиванием в С имеет множество различных названий:

  • пузырьковая сортировка двунаправленного действия;

  • шейкер-сортировка;

  • сортировка пульсацией;

  • сортировка трансфером;

  • «счастливый час».

Сколько бы ни было названий — результат один.

 

Сортировка перемешиванием в С

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

Почему такую сортировку называют «сортировка перемешиванием» или «шейкер-сортировка»? Потому что в момент ее выполнения массив действительно похож на хорошо перемешанный массив.

 

Сортировка перемешиванием в С, реализация кодом

Приведем простой пример реализации сортировки перемешиванием:

bool sort_number = true;

   do {

    sort_ number = true;

    for (int i = 0; i < n; i++) { // n — количество элементов массива

      if (number[i] > number[i + 1]) {

        swap (number[i], number[i + 1]);

        sort_ number = false;

      }

    }

    for (int i = 4; i >= 1; i--) {

      if (number[i] < number[i - 1]) {

        swap (number[i], number[i - 1]);

        sort_ number = false;

      }

    }

  } while (sort_ number == false);

 

Объясняем пример. Мы создали bool-переменную «sort_number» и сразу придали ей значение «true». Мы за 2 цикла проверим, были ли изменены значения в ячейках.

«sort_number» присвоит значение «false», когда результаты после выполнения оператора «if» будут «true».

Смысл заключается в том, что мы прописали в цикле «do while», что «sort_number == false». Это означает, что, пока происходит обмен значений ячеек, сортировка перемешиванием заканчиваться не будет. Когда «sort_number» после цикла не будет равна «false», такой цикл будет считаться завершенным и мы выйдем из него.

 

Заключение

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



Если вам понравилась эта статья поделитесь ею с друзьями, тем самым вы помогаете нам развиваться и добавлять всё больше интересного и полезного контента!




Cхожие статьи





Стоит ли учиться программировать в 2021

Стоит ли учиться программировать в 2021

Не случайно в разговорах о рынке труда, перспективах развития и важнейших с ...

21 Февраля 2021    Другое

Плюсы и минусы Baas для разработки мобильных приложений

Плюсы и минусы Baas для разработки мобильных приложений

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

23 Марта 2021    Другое

Начинающий программист

Начинающий программист

Самыми легкими в изучении можно считать такие языки как JavaScript, Python, ...

23 Марта 2021    Другое



Напишем