Поиск по этому блогу

четверг, 23 февраля 2017 г.

Метод прямого обмена (метод пузырька).

В основе алгоритма лежит обмен соседних элементов массива. Каждый элемент массива, начиная с первого сравнивается со следующим и если он больше следующего, то элементы меняются местами. Таким образом, элементы с наименьшим значением продвигаются к началу массива (всплывают), а элементы с большим значением – к концу массива (тонут), поэтому его и называют методом пузырька. Этот процесс повторяется на единицу меньше раз чем элементов в массиве, либо возможно другой способ реализации этого метода, повторяется до тех пор пока находятся соседние элементы, такие что элемент стоящий правее оказывается меньше элемента стоящего левее.
program vosr;                                           
var a: array [1..15] of integer;
      i, j, k, n, m, c, f: integer;
begin
    writeln (‘Вводите количество элементов массива <16’); readln (n);
    for i:=1 to n do 
      begin
          write (i,’:’); readln (a[i]);
      end;
  for i:=1 to n-1 do 
     begin
      for j:=1 to n-1 do
            if a[j]>a[j+1] then 
               begin
                c:=a[j];
                a[j]:=a[j+1];
                a[j+1]:=c;
             end;
     end;
for i:=1 to n do
        writeln (a[i]);
end.
Упорядочивание с использованием цикла с заданным условие окончания работы.

program vosr;                                           

var a: array [1..15] of integer;

      i, j, k, n, m, c, f: integer;

begin

      writeln (‘’); readln (n);
    for i:=1 to n do begin
          write (i,’:’); readln (a[i]);
      end;
k:=n-1;
repeat
   f:=0;
      for i:=1 to k do
            if a[i]>a[i+1] then begin
                f:=1;
                c:=a[i];
                a[i]:=a[i+1];
                a[i+1]:=c;
             end;
        dec(k);
 until f=0;
for i:=1 to n do
        writeln (a[i]);
readln;
                end.

Комментариев нет:

Отправить комментарий