Хелпикс

Главная

Контакты

Случайная статья





Методы сортировки. Сортировка методом нахождения минимального элемента



Методы сортировки

Сортировка массива методом пузырька - медленная, но если скорость не главное, можно применить и его. Алгоритм очень прост - если два соседних элемента расположены не по порядку, то меняем их местами. Так повторяем до тех пор, пока в очередном проходе не сделаем ни одного обмена, т.е. массив будет упорядоченным. Ниже текст процедуры, реализующей алгоритм сортировки методом пузырька (Arr - массив для сортировки с начальным индексом 0, n - размерность массива)

Program SortPuz;

uses Crt;

Const N=10;

var Arr : array [1..n] of Integer;

I: Integer;

Temp : Integer;

Flag : Boolean;

Begin

Clrscr; randomize;

Writeln ('Сортировка массива методом пузырька');

for i:=0 to n do

begin

      arr[i]:=random(100);

      write (arr[i]:3);

end;

writeln; repeat

Flag := False;

for i := 0 to n - 1 do

if Arr [i] > Arr [i + 1] then begin

   Temp := Arr [i];

   Arr [i] := Arr [i + 1];

   Arr [i + 1] := Temp;

   Flag := True;

end;

until Flag = False;

Writeln ('Sorted array');

for i:=0 to n do write (arr[i]:3);

readln;

end.

Сортировка методом нахождения минимального элемента

Ещё один вариант сортировки, более быстрый, чем метод пузырька.

Заключается он в следующем: при каждом просмотре массива находим минимальный элемент и меняем местами его с первым на первом проходе, со вторым - на втором и т.д. Не забудьте только, что первый элемент массива должен иметь индекс 0.

program SortMin;

uses Crt;

Const N=10;

var Arr : array[1..n] of Integer;

i, j: Integer;

Min, Pos, Temp : Integer;

Begin

Clrscr; randomize;

Writeln ('Сортировка методом нахождения минимального элемента’);

for i:=0 to n do

begin

      arr[i]:=random(100);

      write (arr[i]:3);

end;

for i := 0 to n - 1 do begin

Min := Arr [i];

Pos := i;

for j := i + 1 to n do

if Arr [j] < Min then begin

   Min := Arr [j];

   Pos := j;

end;

Temp := Arr [i];

Arr [i] := Arr [Pos];

Arr [Pos] := Temp;

end;

Writeln ('Sorted array');

for i:=0 to n do write (arr[i]:3);

readln;

end.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.