Сұрыптау
түрлері
Таңдау(selection sort) арқылы
сұрыптау
Таңдау
арқылы сұрыптау - Массивтегі ең кіші, ең үлкен элементті тауып, оны
сұрыпталмаған элементтердің бірінші тұрғанымен
ауыстыру
Таңдау арқылы
сұрыптауды өсу ретімен орындаудың бірінші қадамында массивтің
минималды элементі табылады да, ол бірінші тұрған элементпен
ауыстырылады. Массив екінші қадамды екінші элементтен бастап
қарастырады. Ең кіші элемент тауып, екінші элементпен орын
алмастырады. Әр элементтің ретін табу үшін осындай қадамдар
қайталанады. Әрбір жаңа қадам массивтің сұрыпталмаған бөлігінен
минимум мәнді тауып, оны ағымдағы элементпен
ауыстырады.
Код мысалы
Нәтижесі: а=[1,2,3,5,6]
Программада таңдау
арқылы
сұрыптау
кіріктірілген циклдер
негізінде
жүзеге
асырылады.
аrr массивін өсу ретімен таңдау арқылы сұрыптаудың коды
1-мысал.
2-мысал.
0-ден 100-ге
дейінгі
кездейсоқ 10 саннан
тұратын
массивті
өсу
реті
бойынша
таңдау
арқылы
сұрыптау
Программалау
коды
3-мысал
н
әтиже
4-мысал
нәтиже
Көпіршікті(bubble sort)
сұрыптау
Көпіршікті сұрыптау –
көршілес элементтерді бір-бірімен алыстыру арқылы сұрыптау
әдісі
Әр итерацияда массив
элементтерін жұбымен салыстырады. Егер жұптың орналасу тәртібі
дұрыс болмаса, онда элементтер
ауыстырылады. n-1 итерациялар өткеннен кейін
массив сұрыпталады.
Әр итерациядан кейін массивтің
соңындағы ең үлкен элемент алдыңғы максимум элементінің қасында
тұрады. Минималды элемент әр уақытта массивтің басына қарай бір
позициямен жылжытылады (көпіршіктің суда көтерілген
сияқты).
Өсу ретімен көпіршікті
сұрыптаудың коды
1-мысал
Сыртқы
цикл n-1 итерацияларының орындалуына
мүмкіндік береді. Ішкі цикл 0-ден (n-i-1)-ге дейінгі массивтің ағымдағы
элементінің индексін таңдауға арналған.
2-мысал.
0-ден 100-ге дейінгі
кездейсоқ 10 саннан тұратын массивті
көпіршікті сұрыптау
Н
әтижесі:
Енгізу(кірістіру, sort by insert)
арқылы сұрыптау
Кірістіру арқылы сұрыптау – Массивтегі элементтерін
реттелмеген бөлігіндегі элемент реттелген бөлігіне кірістіріп тексеру арқылы сұрыптау
Бұл
жолы
енгізу
арқылы
сұрыптауды қарастырамыз (Insertion sort). Бұл
әдіс
әрбір
элементтің бұрын
сұрыпталған элементтер арасында
белгілі
бір
позиция
бойынша
ауысуына
негізделген. Барлық
массив
сұрыпталған және
сұрыпталмаған болып
шартты
түрде
екі
бөлікке
бөлінеді. Бастапқыда сұрыпталған бөлік
бос
болады. Әр
қадамда
массивтің
келесі
элементі
сұрыпталған бөліктегі
элементтермен салыстырылады және
оны
орналастыратын орын
анықталады. Осылайша, сұрыпталған бөлікте
элементтер әрдайым
дұрыс
тәртіпте
болады. Алгоритм
массивтің
барлық
элементі
қарастырылғанға дейін
орындалады.
1-мысал
Кему бойынша сұрыптау дәл осылай орындалады,
бірақ цикл шартындағы белгіні ауыстыру керек. (A[j] > key орнына
A[j] < key деп жазу керек).
Кей
жағдайларда сұрыптауды жеке функция ретінде ұйымдастырған
ыңғайлы.
Программалау коды:
2-мысал
3-мысал
nxn матрицасының негізгі диагоналінің элементтерін
енгізу арқылы сұрыптайтын программа жазу керек.
Программалау коды:
A = [ [8, 8, 8, 8, 8] ,
[1, 1, 1, 1, 1] ,
[7, 7, 7, 7, 7] ,
[2, 2, 2, 2, 2] ,
[5, 5, 5, 5, 5] ]
4-мысал
nxn матрицасының бүйір
диагоналінің элементтерін кему ретімен енгізу арқылы сұрыптайтын
программа жазу керек.
Программалау
коды:
A = [ [8, 8, 8, 8, 8]
,
[1, 1, 1, 1, 1]
,
[7, 7, 7, 7, 7]
,
[2, 2, 2, 2, 2]
,
[5, 5, 5, 5, 5]
]
5-мысал
нәтиже
6-мысал
нәтиже
Жылдам(fast sort)
сұрыптау
Жылдам сұрыптау – cандық
элементтерді өсу немесе кему ретімен, мәтіндік массив элементтерін
алфавит ретімен сұрыптайды.
1-мысал
енгізу
нәтижесі
2-мысал
Нәтиже