Ўзбекистон республикаси ахборот технологияларива коммуникациял арини ривожлантириш вазирлиги


Download 430.03 Kb.
bet3/4
Sana07.01.2023
Hajmi430.03 Kb.
#1082522
1   2   3   4
Bog'liq
3-топшириқ

Рекурсив қайта тартиблаш


Агар Mассивнинг бўлиниши натижасида бирон бир қисмда бир нечта element мавжуд бўлса, унда ушбу қисм рекурсив саралаши, яъни юқорида тавсифланган бўлиниш операцияси бажарилиши керак. "Елементлар сони > 1" шартини текшириш учун тахминан қуйидаги схема бўйича ҳаракат қилинади:




Mas[L..R] мавжуд, бу ерда L ва R массивнинг екстремал елементларининг индекслари. Бўлиниш охирида first ва last кўрсатгичлар тахминан кетма-кетликнинг ўртасида пайдо бўлди ва шу билан иккита сегментни ҳосил қилди: чапдан L дан last гача ва ўнгдан first дан га R. Гача. Агар L<last шарт бажарилса , чап қисмнинг рекурсив тартибини бажариш керакн. Ўнг қисм учун шарт ўхшаш: first

Ўзбекистон Республикаси ҳудудлари рўйхатини уларнинг ер майдонига кўра саралаш дастури




uses crt;
const n=13;
var x:array[1..n] of integer = (4200, 39400, 6800, 20500, 6300, 7900, 110300, 400, 160000, 16400, 5100, 20800, 15300);
y:array[1..n] of string = ('Andijon viloyati', 'Buxoro viloyati', 'Farg ona viloyati','Jizzax viloyati','Xorazm viloyati', 'Namjngan viloyati', 'Navoiy viloyati','Qashqadaryo viloyati', 'Qoraqalpog iston Rtspublikasi', 'Samarqand viloyati','Sirdaryo viloyati', 'Surxondaryo viloyati', 'Toshkеnt viloyati');
i:integer;
procedure sort(l,r:integer); {l массивнинг чап чегараси,r-ўнг чегара}
var
i,j,x1,y1,m: integer;
begin
i:=l;
j:=r;
m:=round ((l+r)/2);{марказий элемент}
x1:=x[m];
repeat
while x[i]do inc(i);{ чапдаги ўртадагидан бўлса чап чегарани ўнга силжитамиз }
while x[j]>x1 do dec(j);
if i<=j then {}
begin
y1:=x[i];
x[i]:=x[j];{чап ва ўнгдагиларни алмаштирамиз}
x[j]:=y1;
inc(i); {чапдаги ўнгга}
dec(j); {ўнгдаги чапга}

Download 430.03 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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