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


Procedure fast(q, p : integer; var


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

Procedure fast(q, p : integer; var x : t);
 var
s, l, r : integer;
begin
l := q; r := p;
s := x[l];
 repeat
 while (x[r] >= s) and (l < r) do r := r - 1;
x[l] := x[r];
while (x[l] <= s) and (l < r) do l := l + 1;
x[r] := x[l]
until l = r;
x[l] := s;
if q < l - 1 then fast(q, l - 1, x);
 if l + 1 < p then fast(l + 1, p, x)
end;
Proseduraning juda muhim xususiyatiga e’tibor bering! Uning asosiy qismi - “o’rta” elementni aniqlash jarayoni bajarilgandan so’ng ikkita shartli operator qo’yilgan:
if q < l - 1 then fast(q, l - 1, x);
if l + 1 < p then fast(l + 1, p, x)
Birnchi shartli operator chapga siljishga “majbur etadi” (buni biz misolda ko’rib chiqqan edik) va huddi o’sha prosedura-fastni chaqiradi, ya’ni o’ziga o’zi murojaat etish jarayoni kuzatiladi. Huddi shu jarayon chapga siljishni ta’minlovchi ikkinchi shartli operatorda kuzatiladi. Bu yerda ham fast prosedurasi- o’zini o’zi chaqiradi. Ya’ni bizda rekursiv prosedura hosil bo’ladi.
Mustaqil yechish uchun vazifalar
Shu prosedura yordamida massivni tartiblashga doir to’la dasturni tuzing va uni bajaring.
197-misol. Tasodifiy sonlar funksiyasi yordamida tuziladigan, so’ngra tezkor tartiblash rekursiv prosedurasi yordamida tartiblanadigan ikkita tartiblangan massivdagi o’xshash elementlar sonini toping.
Program L197;
uses Crt;
const n = 20;
 type t = array[1..n] of integer;
var x : t; i : integer;
{----------------------------------------------------------------------------------------}
Procedure create(n : integer; var x : t);
 var
i : integer;
 begin
randomize;
writeln('Berilgan butun sonli massiv');

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