For sikli yordamida amalga oshirish mumkin. Elementni massiv boshiga (birinchi o’ringa) ko’chirish uchun prosedura


begin l := q; r := p; s := b[l];  repeat


Download 36.98 Kb.
bet15/16
Sana01.04.2023
Hajmi36.98 Kb.
#1318578
1   ...   8   9   10   11   12   13   14   15   16
Bog'liq
masala 1

begin
l := q;
r := p;
s := b[l];
 repeat
while (b[r] >= s) and (l < r) do r := r - 1;
b[l] := b[r];
while (b[l] <= s) and (l < r) do l := l + 1;
b[r] := b[l]
until l = r;
b[l] := s;
if q < l - 1 then fast1(q, l - 1, b);
if l + 1 < p then fast1(l + 1, p, b)
end;
{----------------------------------------------------------------------------------------}
Procedure new(n, m, q, p, k : integer; var c : f);
label 1, 2;
 begin
if k = n + m + 1 then goto 1;
 if p = n then begin q := q + 1; c[k] := b[q]; goto 2 end;
if q = m then begin p := p + 1; c[k] := a[p]; goto 2 end;
 if a[p + 1] < b[q + 1]
then begin p := p + 1; c[k] := a[p]; goto 2 end
 else begin q := q + 1; c[k] := b[q] end;
2: new(n, m, q, p, k + 1, c);
1: end;
{----------------------------------------------------------------------------------------}
begin
randomize;
 for i := 1 to n do a[i] := random(201)-100;
for i := 1 to m do b[i] := random(201)-100;
fast(1, n, a);
writeln('Berilgan tartiblangan 1-chi massiv');
for i := 1 to n do write(a[i], ' ');
writeln;
fast1(1, m, b);
writeln('Berilgan tartiblangan 2-chi massiv');
 for i := 1 to m do write(b[i], ' ');
writeln;
new(n, m, 0, 0, 1, c);
writeln('Yangi tartiblangan birlashtirilgan massiv');
 for i:=1 to n + m do write(c[i], ' ');
writeln
 end.
223-misol. 1 dan 100 gacha bo’lgan tasodifiy sonlardan m*n kattalikdagi matrisani tuzing. Ularni quyidagi chizma bo’yicha o’sib borish tartibida joylashtiring (1-rasmga qarang):
Massiv elementlarini bunday sxema bo’yicha joylashtirish va masala shartini bajarish - elementlarni o’sib borish tartibida joylashtirish uchun quyidagilar kerak bo’ladi:
1) matrisani bir o’lchovli massivga "cho’zish";
2) Olingan massivni o’sib borish tartibida joylashtirish;
3) Olingan bir o’lchovli massivdan elementlari taklif etilgan chizma bo’yicha joylashgan ustunlarni “tanlash” kerak. 
Bu algoritmning birinchi bosqichini oldingi misolga asoslanib bajarish qiyin emas.
Olingan bir o’lchovli massivni tezkor tartiblash prosedurasi yordamida tartiblash mumkin.
Uchinchi bosqich biz uchun yangi. Uni bajarish uchun biz quyidagi qonuniyatga e’tibor berishimiz kerak. Agar ikki o’lchovli massivdagi ustun toq nomerga ega bo’lsa, ya’ni 1, 3, 5 va h.k bo’lsa, u holda ustun elementlari 1-chi elementdan to n-gacha “tepadan pastga qarab” o’sib borish tartibida joylashadi. 
Agar ustun nomerlari juft, ya’ni 2, 4, 6 va h.k bo’lsa, u holda elementlar n-dan 1-gacha “pastdan tepaga qarab” joylashadi.

Download 36.98 Kb.

Do'stlaringiz bilan baham:
1   ...   8   9   10   11   12   13   14   15   16




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling