Вторник, 15.07.2025, 05:50
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта
Форма входа
Копилка
[24.10.2011][Мои статьи]
Календарное планирование 9 класс (1)
[25.10.2011][Мои статьи]
Порфолио учителя (0)
[25.10.2011][Мои статьи]
Календарное планирование курса "Сходинки до інформатики"" (0)
[25.10.2011][Мои статьи]
Календарное планирование 9 класс ІІ семестр (0)
[25.10.2011][Мои статьи]
Правила ТБ при работе за компьютером (0)







Поиск
Наш опрос
Оцените мой сайт
Всего ответов: 21
Друзья сайта
Бесплатное продвижение сайтов в поисковых системах

Каталог сайтов. Зарегистрировать сайт бесплатно в каталог сайтов
каталог сайтів
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Категории раздела
Неделя информатики [0]
Мои статьи [39]

Учитель
информатики

ОШ №17
г.Дружковки

Главная » Статьи » Мои статьи

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

Метод "пузырька"

По-видимому, самым простым методом сортировки является так называемый метод "пузырька". Чтобы уяснить его идею, представьте , что массив (таблица) расположен вертикально. Элементы с большим значением всплывают вверх наподобие больших пузырьков. При первом проходе вдоль массива, начиная проход "снизу", берется первый элемент и поочередносравнивается с последующими. При этом:

  • если встречается более "легкий" (с меньшим значением) элемент, то они меняются местами;
  • при встрече с более "тяжелым" элементом, последний становится "эталоном" для сравнения, и все следующие сравниваются с ним .

В результате наибольший элемент оказывается в самом верху массива.

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

Заметим, что при втором и последующих проходах, нет необходимости рассматривать ранее "всплывшие" элементы, т.к. они заведомо больше оставшихся. Другими словами, во время j-го прохода не проверяются элементы, стоящие на позициях выше j.

ПРОГРАММА. ПУЗЫРЬКОВАЯ  СОРТИРОВКА.

PROGRAM BS;

VAR I,J,X,N:INTEGER;

    M:ARRAY[0..50] OF INTEGER;

BEGIN

 WRITELN('Введи  длину  массива');

 READ(N);

 WRITELN('Введи  массив');

 FOR I:=1 TO N DO READ(A[I]);

 FOR I:=2 TO N DO  

FOR J:=N DOWNTO I DO 

IF M[J-1]>М[J] THEN 

BEGIN

  X:=M[J-1];

  M[J-1]:=M[J];

  M[J]:=X

 END;

 WRITELN('Результат:');

 FOR I:=1 TO N DO WRITE(M[I],' ')

END.                                       

Пример программы упорядочения массива с использование подпрограммы swap 

begin
   for
 j:=1 to N-1 do
     for i:=1 to N-j do
        if M[i] > M[i+1] then
              swap(M[i],M[i+1])
end;

Стандартная процедура swap будет использоваться и в остальных алгоритмах сортировки для перестановки элементов (их тип мы уточнять не будем) местами:

procedure swap(var x,y: ...);
   var t: ...;

 begin
    t := x;
    x := y;
    
y := t
 end;

Заметим, что если массив M — глобальный, то процедура могла бы содержать только аргументы (а не результаты). Кроме того, учитывая специфику ее применения в данном алгоритме, можно свести число парметров к одному (какому?), а не двум.

Категория: Мои статьи | Добавил: admin (19.02.2013)
Просмотров: 1511 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Фёдорова Т. В. © 2013