Лічильник
Сьогодні Разом
Відвідувань 190 5403773
Авторізацій 10 434260
Користувачів 5 2731
Статья

33. Улучшение алгоритма пузырьковой сортировки


После первого прохода по массиву самый большой элемент перемещается на "свое" место. После второго прохода, следующий по значению элемент, также становится на свое место. Поэтому, после очередного прохода по массиву, верхнюю границу индекса элемента можно уменьшать на единицу:
 m := n;
 repeat
  count := 0;
  for i := 2 to m do
   if a[i] < a[i - 1]
    then begin
          <Обмен значениями a[i] и a[i-1] элементов>
          inc(count)
         end;
  dec(m);
 until count = 0
Здесь мы ввели в алгоритм новую переменную m, первоначально присвоив ей значение переменной n (количество элементов массива). По завершению очередного прохода по массиву мы уменьшаем значение переменной m. Это несколько ускорит сортировку массива, так как количество попарных сравнений элементов с каждым проходом будет уменьшаться.