Ақпаратты өңдеу форматтары


program Sort_Include1; var



бет12/31
Дата24.01.2022
өлшемі1,6 Mb.
#113866
1   ...   8   9   10   11   12   13   14   15   ...   31
Байланысты:
Итн толық жауаптарыменн

    Бұл бет үшін навигация:
  • Мысал
program Sort_Include1;

var A:array[1..100] of integer;

N,i,k,x : integer;



begin

write('жиым элементтерінің саны');

read(N);

read(A[1]); {for i:=1 to n do read(A[i]);}

{k – жиымның реттелген бөлігіндегі элементтер саны}



for k:=1 to n-1 do

begin

read(x); {x:=A[k+1];}

i:=k;


while (i>0)and(A[i]>x) do

begin

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

i:=i-1;

end;

A[i+1]:=x;



end;

for i:=1 to n do write(A[i],' '); {реттелген жиым}

end.

Мысал: N бүтін сандардан тұратын А жиымының элементтерін өсу реті бойынша екілік іздеумен қосып сұрыптау.

program Sort_Include2;

var A:array[1..100] of integer;

N,i,k,x,c,left,right : integer;



begin

write('жиым элементтерінің саны'); read(N);

read(A[1]); {for i:=1 to n do read(A[i]);}

{k - жиымның реттелген бөлігіндегі элементтер саны }



for k:=1 to n-1 do

begin

read(x); {x:=A[k+1];}

left:=1; right:=k;

{іздеу фрагментінің оң және сол жақ шекарасы}

while leftdo

{соңғы айналымның екілік іздеуі}



begin

c:=(left+right+1) div 2;

{үлкен жаққа қарай дөңгелектеу ортасы}

if x>=A[c] then left:=c

{бірінші жартыны ортасымен аламыз}



else right:=c-1; {сол жақ жартысы ортасынсыз аламыз}

end;

if x>=A[left] then left:=left+1;

{х-ті енгізу үшін жиымды сдвигаем на 1 орынға оңға жылжытамыз}



for i:=k downto left do A[i+1]:=A[i];

A[left]:=x;



end;

for i:=1 to n do write(A[i],' '); {реттелген жиым}

end.

Алмастырып сұрыптау ("көпіршік" тәсілі)

Сұрыптаудың бұл тәсілінде жиымның көршілес элементтері бір-бірімен салыстырылады. Егер олар қажет ретпен орналаспаған болса, онда олардың орындарын алмастырамыз. Осы тәсілмен барлық элементтерді бір рет салыстырып шыққаннан кейін ең үлкен ең соңғы N-ші орында болады (бірінші "көпіршік" шықты). Циклдың келесі айналымы біріншіден N-1 элементке дейін орындалады және т.с.с. Барлығы N-1 салыстырылым қажет. Алмастыру арқылы сұрыптау тәсілінің есептелу күрделілігі O(N*N).

Мысал: 4,9,7,6,2,3 тізбегі берілген. Тізбекті өсу реті бойынша сұрыптау керек.







Мысал: N бүтін сандардан тұратын А жиымын өсу реті бойынша алмастырып сұрыптау. (Базалық нұсқа)



Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   ...   31




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет