Лічильник
Сьогодні Разом
Відвідувань 531 5310899
Авторізацій 17 426922
Користувачів 17 2639
Статья

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. Это несколько ускорит сортировку массива, так как количество попарных сравнений элементов с каждым проходом будет уменьшаться.