Лічильник
Сьогодні Разом
Відвідувань 22 5273696
Авторізацій 0 423086
Користувачів 0 2728
Статья

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