Біріктіру арқылы сұрыптау
Қазақ Энциклопедиясы жобасынан алынған мәлімет
Сурет:Merge sort animation2.gif
Нүктелердің бірігу арқылы сұрыпталуы
Біріктіру арқылы сұрыптау - массив элементтерін бөліктерген бөліп, бөлек-бөлек сұрыптау.
Мазмұны
Біріктіру тәсілімен сұрыптау
- Берілген массив бірнеше бөліктерге (кіші масивтерге) бөлініп, бөлек-бөлек сұрыпталады;
- Бірінші және екінші бөліктен сұрыпталған бір бөлік жасақталады; пайда болған бөлік пен үшінші бөлік және тағы да сол тәрізді сұрыпталады;
- Осы процесс соңғы екі бөлік біріккенге дейін жалғасып отырады.
Сурет:Merge-sort-example-300px.gif
Бірігу арқылы сұрыптаудың мысалы. Мұнда бірінші барлық элементті бір-біреуден сұрыптаймыз, кейін оларды көршілерімен салыстырамыз, сөйтіп соңында барлыға сұрыпталады.
Алгоритм
- Өлшемі n болатын А массивін толтыру және экранға шығару;
- i:=1;
- Индекс i-ден басталатын массив элементтерінің ішінен ең кішісін (индексі j) таңдап алу;
- A[i] және A[j] элементтерінің орындарын ауыстыру;
- i:=i+1 мәні үшін i:=n болғанға дейін 3 және 4 қадамдарды қайталау;
- Сұрыпталған А массивін экранға шығару.
Программалау
<source lang="c"> Program Aikesha_lay; Const n=8; type MasType=array [1..n] of integer; var i, idx, k: integer;
A:MasType;
Function MinMas (j:integer):integer; Var p, min:integer; Begin For p:=j to n do If (p=j) or (A[p]<A[min]) then min:=p; M3nMas:=min; End; Begin Randomize; Writeln('Берілген сандар массиві:'); For i:=1 to n do Begin A[i]:=Random(30); Write(A[i]:4); end; For i:=1 to n-1 do Begin idx:=MinMas(i); k:=A[i]; A[i]:=A[idx]; A[idx]:=k; end; writeln; writeln('Өсуіне қарай сұрыптау нәтижесі:'); For i:=1 to n do Write(A[i]:4); readln; end. </source>
Дереккөздер
Қолданылған әдебиеттер
- «Қазақстан»: Ұлттық энцклопедия / Бас редактор Ә. Нысанбаев – Алматы «Қазақ энциклопедиясы» Бас редакциясы, 1998 ISBN 5-89800-123-9
- Бурин Е. А. Программирование на языке Турбо Паскаль. А., 2000.
- Вирт Н. Алгоритмы инструктуры данных.
- Досмайлов Т. К. Паскаль программалау тілі. А.,1996.
- Кнут Теория алгоритмов.
- Матросов В. Л. Теория Алгоритмов.
- Семашко Г. Л., Салтыков Г. Л. Программирование на языке Паскаль. М.,1988.