Space Base Space Base
+7 928 008-80-89
ru
  • en
  • es
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  1. Библиотека
  2. Алгоритмы
  3. Алгоритм сортировки перемешиванием (Шейкерная сортировка, двунаправленная пузырьковая сортировка)
logo

Алгоритм сортировки перемешиванием (Шейкерная сортировка, двунаправленная пузырьковая сортировка)

08.12.2014

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

Механизм алгоритма сортировки по возрастанию следующий:

  • выбирается начало и конец диапазона массива. Причем конец массива на единицу меньше;
  • выполняется последовательное сравнение и замена, выводящая большее значение в конец массива;
  • сокращается диапазон обработки массива с конца на единицу;
  • последовательное прохождение массива, выводящее меньшее значение в начало;
  • сокращение диапазона обработки массива с начала на единицу.

Цикл завершается, когда диапазон сойдется в середине массива.

const
    N = 10; // размер массива
var
    i, low, high, h : Integer;
    mas : array[1..N] of Integer;
begin
    low := 1; // начало и конец массива
    high := N - 1;

    while low < high do begin
      for i := low to high do // проход массива от начала к концу, перемещение большего значения
         if mas[i] > mas[i+1] then begin // замена элементов местами
             h := mas[i];
             mas[i] := mas[i+1];
             mas[i+1] := h;
         end;

    high := high - 1; // сокращение сортируемого диапазона от конца

    for i := high downto high do // проход массива от конца к началу, перемещение меньшего значения
        if mas[i] > mas[i+1] then begin // замена элементов местами
            h := mas[i];
            mas[i] := mas[i+1];
            mas[i+1] := h;
         end;

   low := low + 1; // сокращение сортируемого диапазона от начала
  end;
end;

Другие материалы:

Алгоритм сортировки выбором


Алгоритм сортировки методом пузырька


Алгоритм сортировки перемешиванием (Шейкерная сортировка, двунаправленная пузырьковая сортировка)


Написать комментарий

Комментарии

В комментариях запрещено публиковать рекламные материалы. Все сообщения оправляются на модерацию и будут опубликованы, если не нарушают правил сайта после проверки.


коммент.

Разработка сайтов

Корпоративный сайт
Интернет-магазин
Лендинг - одностраничный сайт
Сайт-визитка
Сайт-портфолио

Проектирование

Прототип, UX-дизайн

Дизайн

UI-дизайн
Логотип

+54 911 2801-4950

info@space-base.net
+7 928 008-80-89

Web-сайты для успешного бизнеса

Web-сайты для успешного бизнеса

Главная Услуги Портфолио События Библиотека Контакты
+7 928 008-80-89 Меню
Политика в отношении обработки персональных данных © Copyright 2014 - | Space-Base

Лучшее время начать свой проект - Сейчас!

Выбраны опции:

Отправить сообщение на:

Telegram WhatsApp

Отправляя сообщение, вы даете свое согласие на
обработку песональных данных