|
|||
Методы сортировки. Сортировка методом нахождения минимального элементаСтр 1 из 3Следующая ⇒ Методы сортировки Сортировка массива методом пузырька - медленная, но если скорость не главное, можно применить и его. Алгоритм очень прост - если два соседних элемента расположены не по порядку, то меняем их местами. Так повторяем до тех пор, пока в очередном проходе не сделаем ни одного обмена, т.е. массив будет упорядоченным. Ниже текст процедуры, реализующей алгоритм сортировки методом пузырька (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.
|
|||
|