Э. А. Абдыкеримова информатиканың теориялық негіздері


Марривсің элеменссерін екіге бөліп іздет



бет59/75
Дата09.09.2022
өлшемі476,55 Kb.
#149106
1   ...   55   56   57   58   59   60   61   62   ...   75
Байланысты:
Э.А.Абдыкеримова.ИНФОРМАТИКАНЫҢ ТЕОРИЯЛЫҚ НЕГІЗДЕРІ

Марривсің элеменссерін екіге бөліп іздет


Егер массив реттелген болса, онда оның берілген ҥлгіге тең элементін жағалап іздеу арқылы табу тиімсіз болып табылады. Тиімді әдістердің бірі - екіге бӛліп іздеу.


Мысалы. Саны n болатын, ӛсуіне қарай реттелген әр тҥрлі элементтерден тҧратын A сандар массиві берілген. Оның элементтерінің ішінде берілген ulg санына тең болатыны бар ма? Болса, оның индексін анықтаңдар.

Program Prost_3; const n=17;


var A: array[1..n] of іnteger;
і, mіn, max, ort, ulg: іnteger; p: boolean; begіn Randomіze;
For і:=1 to n do
begіn іf і=1 then A[і]:=Random(8)+1 else A[і]:=A[і-1]+Random(8)+1;
wrіte(A[і]:4); end;
Wrіteln; Wrіte(‗Ҥлгіні енгізіңіз: ‘);
Readln(ulg); mіn:=1; max:=n; p:=false; Repeat
Ort:=(mіn+max) dіv 2; іf A[ort]=ulg
then p:=true else іf A[ort]>ulg
then max:=ort-1 else mіn:=ort+1; untіl p or (mіn>max);
іf p then wrіteln(‗Элемент индексі: ‘,ort) else wrіteln ( ‗Ондай элемент жоқ!‘); Readln;end.

Массивтің элементтерін белгілі бір заңдылықпен орындарын ауыстырып реттеу процесін сҧрыптау дейді. Сҧрыптаудың мақсаты - сҧрыпталған жиындағы элементтерді іздеуді жеңілдету. Мысалы, сандар массивін ӛсуі, кемуі бойынша сҧрыптау, жолдар массивін алфавит бойынша сҧрыптау және т.б. Ақпараттық жҥйелерде мәліметтерді сҧрыптаудың маңызы ӛте зор. Сҧрыптаулар жағдайында сәйкес әдістер екі класқа бӛлінген: масивтерді сҧрыптау және файлдарды сҧрыптау. Кейде оларда ішкі және сыртқы сҧрыптаулар деп атайды. Себебі массивтер машинаның ішкі жедел жадында сақталады, ал файлдар әдетте баяу,сыртқы жадыларда сақталады.


Бҥгінде сҧрыптаудың кӛптеген тәсілдері белгігі. Олардың ішінен таңдау арқылы, алмастыру арқылы, индекстері арқылы, енгізу арқылы және біріктіру арқылы сҧрыптауларды ғана қарастырмақпыз.


    1. Элементтерді таңдау арқылы сҧрыптау




Мысалы. n элеменссен сұрасын A рандар марриві берілген. Оны саңдат әдірін қолданып элеменссерінің өрті бойынша рұрыпсаңдар

Program Prost_4; const n=8;


type MasType = array [1..n] of іnteger; var і, іdx, k: іnteger; A: MasType; Functіon MіnMas(j: іnteger): іnteger;
var p, mіn: іnteger; begіn for p:=j to n do
іf (p=j) or (A[p]begіn Randomіze; Wrіteln(‗Берілген сандар массиві:‘);
For і:= 1 to n do begіn A[і]:=Random(30); Wrіte(A[і]:4); end; For і:=1 to n-1
do
begіn іdx:=MіnMas(і);
k:=A[і]; A[і]:=A[іdx]; A[іdx]:=k; end;
Wrіteln; Wrіteln(‗Ӛсуіне қарай сҧрыптау нәтижесі:‘); For і:=1 to n do Wrіte(A[і]:4); Readln;end.
Бҧл программада берілген массив бӛлігінің ең кіші элементінің индексін (рет нӛмірін) табатын MіnMas(j) функциясы пайдаланылған. Функцияның j параметрінің мәні массив бӛлігінің бірінші элементінің рет нӛмірін (соңғысы n) кӛрсетеді.




    1. Достарыңызбен бөлісу:
1   ...   55   56   57   58   59   60   61   62   ...   75




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

    Басты бет