Біріктіру арқылы сұрыптау

Қазақстан Энциклопедиясы жобасынан алынған мәлімет

Сурет:Merge sort animation2.gif
Нүктелердің бірігу арқылы сұрыпталуы

Біріктіру арқылы сұрыптау - массив элементтерін бөліктерген бөліп, бөлек-бөлек сұрыптау.

Біріктіру тәсілімен сұрыптау

  • Берілген массив бірнеше бөліктерге (кіші масивтерге) бөлініп, бөлек-бөлек сұрыпталады;
  • Бірінші және екінші бөліктен сұрыпталған бір бөлік жасақталады; пайда болған бөлік пен үшінші бөлік және тағы да сол тәрізді сұрыпталады;
  • Осы процесс соңғы екі бөлік біріккенге дейін жалғасып отырады.
Сурет:Merge-sort-example-300px.gif
Бірігу арқылы сұрыптаудың мысалы. Мұнда бірінші барлық элементті бір-біреуден сұрыптаймыз, кейін оларды көршілерімен салыстырамыз, сөйтіп соңында барлыға сұрыпталады.

Алгоритм

  1. Өлшемі n болатын А массивін толтыру және экранға шығару;
  2. i:=1;
  3. Индекс i-ден басталатын массив элементтерінің ішінен ең кішісін (индексі j) таңдап алу;
  4. A[i] және A[j] элементтерінің орындарын ауыстыру;
  5. i:=i+1 мәні үшін i:=n болғанға дейін 3 және 4 қадамдарды қайталау;
  6. Сұрыпталған А массивін экранға шығару.


Программалау

<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>

Дереккөздер

Үлгі:Дереккөздер

Қолданылған әдебиеттер

Үлгі:Refbegin

  • «Қазақстан»: Ұлттық энцклопедия / Бас редактор Ә. Нысанбаев – Алматы «Қазақ энциклопедиясы» Бас редакциясы, 1998 ISBN 5-89800-123-9
  • Бурин Е. А. Программирование на языке Турбо Паскаль. А., 2000.
  • Вирт Н. Алгоритмы инструктуры данных.
  • Досмайлов Т. К. Паскаль программалау тілі. А.,1996.
  • Кнут Теория алгоритмов.
  • Матросов В. Л. Теория Алгоритмов.
  • Семашко Г. Л., Салтыков Г. Л. Программирование на языке Паскаль. М.,1988.

Сыртқы сілтемелер