type
TVector = array [1..n] of Real;
var
Vector : TVector;
Min : Real;
Imin, S : Integer;
i : Integer;
begin
ClrScr;
Writeln ('Массив элементларини киритиш:');
for i := 1 to n do Read (Vector[i]); Readln;
{-------------------------------------------------------------------------------} }
for S := 1 to n-1 do
begin
{S-элементдан n-гача бўлган соћада минимал элементни излаш}
Min := Vector[S];
Imin : = S ;
for i := S+l to n do
if Vector[i] < Min then
begin
Min := Vector [i] ;
Imin : = i
end;
{Минимал ва S-элементларни ўринлари билан алмаштириш }
Vector[Imin] :=Vector[S];
Vector[S] := Min;
end;
{----------------------------------------------------------------------------------------}
Writeln ('Сараланган массив:');
for i := 1 to n do Write (Vector[i]:8:2);
Writeln;
end.
9.1.2.3. Алмаштириш йўли («кўпик» усули) билан саралаш
Усул тамойили:
Чапдан ўнгга томон навбат билан икки ќўшни элемент, тартибга солишнинг берилган шартига мос келмаса, ўринлари билан алмаштирилади. Шўндан кейин навбатдаги ќўшни элементлар олинади, худди шундай тарзда, массив охиригача, иш бажарилади.
Бир марта шундай ўтишдан кейин массивнинг охирги n-хонасида максимал элемент жойлашган бўлади (биринчи «кўпик» юзага чиќади). Охирги элемент ўзининг охирги хонасида тургани учун, алмаштиришнинг иккинчи ўтиши энди n-1 элементгача бўлади ва ћ.к. Ћаммаси бўлиб, n-1 та ўтиш талаб ќилинади.
Алмаштириш усулининг ўсиб бориш тартибида саралаш алгоритми схемасини кўрамиз.
Дастур матнини келтирамиз.
9.3-дастур
Do'stlaringiz bilan baham: |