96
13.6 Элементтерді енгізу тәсілімен сҧрыптау
Бҧл тәсілдің мәні массивтің сҧрыпталмаған бӛлігінен сҧрыпталған бӛлігіне
элементтерді бір-бірлеп енгізу. Енгізілген элемент массив бӛлігінің
сҧрыпталуын бҧзбауы қажет. Ол ҥшін енгізілетін элемент ӛз орнын тапқанша,
сҧрыпталған бӛлігінің элементтерімен орын ауыстырып отыруы тиіс.
Мысалы. n элеменссен сұрасын
A рандар марриві берілген. Элеменссерді
енгізт сәрілін пайдаланып марривсі элеменссерінің өрті бойынша рұрыпсаңдар.
Program Prost_7;
const n= 8;
var A: array[1..n] of іnteger; і, j, k: іnteger;
begіn Randomіze;
Wrіteln(‗Берілген сандар массиві:‘);
For і:= 1 to n to begіn A[і]:=Random(30); Wrіte(A[і]:4); end;
For і:=2 to n do
begіn j:= і – 1;
Repeat іf A[j+1]<=A[j]
then begіn k:=A[j]; A[j]:=A[j+1]; A[j+1]:=k; j:=j – 1; end else j:=0;
untіl j=0; end;
Wrіteln; Wrіteln(‗Ӛсуіне қарай сҧрыптау нәтижесі:‘);
For і:=1 to n do Wrіte(A[і]:4); Readln;end.
13.7 Біріктіру тәсілімен сҧрыптау
Бҧл тәсіл бойынша:
- берілген массив бірнеше бӛліктерге (кіші массивтерге) бӛлініп, бӛлек-
бӛлек сҧрыпталады;
- бірінші және екінші бӛліктен сҧрыпталған бір бӛлік жасақталады;
пайда
болған бӛлік пен ҥшінші бӛлік және т.с.с. біріктіріліп сҧрыпталады;
- осы процесс соңғы екі бӛлік біріккенге дейін жалғастырылады.
- Массивті бӛліктерге бӛліп, бӛлек-бӛлек сҧрыптау оқушыға қиындыққа
тҥспейді деп ойлаймыз.
Сондықтан, сҧрыпталған екі массивті біріктіріп
сҧрыптау алгоритмін қарастырайық.
Мысалы. Өрті бойынша рұрыпсалған m элеменссен сұрасын
A және
n
элеменссен сұрасын
B рандар марривсері берілген.
A және
B марривсерінің
элеменссерінен, өрті бойынша рұрыпсалған
C марривін жарақсаңыз.
Program Prost_8;
const m=6; n=8;
var A: array[1..m] of іnteger;
B: array[1..n] of іnteger;
C: array[1..m+n] of іnteger;
і, j, k: іnteger;
begіn Randomіze; Wrіte(‗A массиві: ‘);
97
For і:= 1 to m do
begіn іf і=1 then A[і]:=Random(8)+1
else A[і]:=A[і-1]+Random(9)+1;
Wrіte(A[і]:4); end;
Wrіteln; Wrіte(‗B массиві:‘);
For і:= 1 to n do begіn
іf і=1 then B[і]:=Random(8)+1
else B[і]:=B[і-1]+Random(9)+1;
Wrіte(B[і]:4); end;
і:=1; j:=1; k:=1; Whіle (і<=m) and (j<=n) do
begіn
іf A[і]<=B[j] then begіn C[k]:=A[і]; іnc(і); end
else begіn C[k]:=B[j]; іnc(j); end;
іnc(k); end;
Whіle і<=m do begіn C[k]:=A[і]; іnc(і); іnc(k); end;
Whіle j<=n do begіn C[k]:=B[j]; іnc(j); іnc(k); end;
Wrіteln; Wrіte(‗C массиві: ‘);
For і:=1 to m+n do Wrіte(C[і]:4); Readln;end.
Достарыңызбен бөлісу: