Программалау және программа, программалау тілдері. Программалау тілдерінің түрлері. Программаны түзету (отладка), тестілеу


Массивтерді сұрыптау алгоритмдері.Таңдау әдісі. Массивте екілік іздеу. Орын алмастыру әдісі. Орнына қою әдісі (метод вставок). Айырмашылықтары



бет14/21
Дата03.01.2022
өлшемі102.98 Kb.
#450573
түріПрограмма
1   ...   10   11   12   13   14   15   16   17   ...   21
прог

8. Массивтерді сұрыптау алгоритмдері.Таңдау әдісі. Массивте екілік іздеу. Орын алмастыру әдісі. Орнына қою әдісі (метод вставок). Айырмашылықтары.

Алгоритмдерді әдетте сандық (есептеу) және сандық емес (есептеусіз) деп бөледі. Сандық алгоритмдер сандармен математикалық есептеулер жүргізуге арналған, ал сандық емес алгоритмдер әртүрлі құрылымданған мәліметтермен жұмыс істейді. Ең маңызды есептеусіз алгоритмдердің бірі болып сұрыптау және іздеу табылады. Объектілердің берілген тізбегін қандай да бір анықталған ретпен қайта топтастыратын үрдісті сұрыптау деп атайды. Сұрыптаудың мақсаты – сұрыпталған тізбекте қажетті элементтерді іздестіруді жеңілдету. Сұрыптау алгоритмдері мәліметтер құрылымын таңдауға тәуелді, сондықтан сұрыптау әдістерін екі түрге бөледі: ішкі сұрыптау алгоритмдері(массивтерді сұрыптау) және сыртқы сұрыптау алгоритмдері(файлдарды сұрыптау). Сандық емес алгоритмдер үшін жазбалар массивтерін сұрыптау тән. Кілттік өріс – сызықтық тәртіптегі қатынаспен анықталатындай мәлімет типімен берілген өріс. Егер бірдей кілтті элементтердің салыстырмалы реті сұрыптауда өзгермесе, онда сұрыптау әдісі орнықты деп аталады. Ішкі сұрыптаулар алгоритмдері – бұл ішкі жадтағы мәліметтерді сұрыптау алгоритмдері, бұл жағдайда қолайлы құрылым – массив. Массивтерді сұрыптау алгоритмдеріне қойылатын басты талап – жадтың экономды пайдаланылуы. Элементтерді in situ (яғни элементтерді қайта топтастыруды жадтың сол жерінде жүргізеді) сұрыптайтын қарапайым сұрыптау алгоритмдері бар: кірулермен сұрыптау, таңдаумен сұрыптау, алмасумен сұрыптау («көбікше» әдісі). Сұрыптаудың жетілдірілген қарапайым әдістері: кемімелі өсімшелі кіру бойынша сұрыптау (Шелл сұрыптауы), ағаш көмегімен сұрыптау (пирамидалық сұрыптау), бөліктеу арқылы сұрыптау (жылдам сұрыптау). Кірулермен сұрыптау – элементтер шартты түрде дайын тізбекке a1,…, ai-1 және кіретін тізбекке ai,…, an бөлінеді, содан кейін әрбір қадамда, i=2 бастап және i-ді бірлікке арттыра отырып, кіретін тізбектің i-ші элементін алып дайын тізбектің тиісті орнына кіргізе береді. Таңдаумен сұрыптау – ең кіші кілтті элемент таңдалады, содан кейін ол бірінші a1 элементімен орын ауыстырылады. Алмасумен сұрыптау – барлық элементтер қажетінше сұрыпталғанша көрші элементтер өзара салыстырылып және орын ауыстырылады.

Қарапайым таңдаумен сұрыптау әдісі қарапайым әдістердің ішіндегі ең жақсысы, алмасумен сұрыптау – ең жаманы, ал жылдам сұрыптау ең тезі және ең жақсысы болып табылады.

Орын ауыстырып сұрыптаудың негізгі идеясы сұрыпталған тізімге жаңа элементті қосар кезде оны кез келген орынға емес бірден қажетті орынға қою керек, сосын барлық тізімді қайтадан сұрыптау керек. Орын ауыстырып сұрыптау l өлшемді кез келген сұрыпталған тізімнің бірінші элементін оқиды. Екіэлементті сұрыпталған тізім бірэлементті тізімнің қажетті орнына алдыңғы берілген тізімнен екінші элементті қосқаннан құрылады. Енді алдыңғы берілген тізімнен сұрыпталған екіэлементті тізімге үшінші элемент қоюға болады. Бұл процесс алдыңғы берілген тізімнің барлық элементтері тізімнің кеңейтілген сұрыпталған бөлігіне қойылғанға дейін қайталана береді.

Енді көпіршікті сұрыптауға өтейік. Оның негізгі принципі кіші мәндерді тізім басына ығыстыру, ал үлкен мәндерді төмен түсіреді. Көпіршікті сұрыптаудың көптеген әртүрлі нұсқалар бар. Бұл параграфта олардың біреуін сипаттаймз, сонымен бірге, кейбіреуі жаттығуларда қарастырылады.

Көпіршікті әдіс алгоритмі тізім бойынша бірнеше рет өтеді. Әрбір өткенде көрші элементтерді салыстырады. Егер көрші элементтердің тізімі дұрыс емес болса, онда олар орын ауыстырады. Әрбір тәсіл тізім басынан басталады. Алдымен бірінші мен екінші элементтер, сосын екінші мен үшінші, содан кейін үшінші мен төртінші және т.с.с.; жұпта ретсіз тұрған элементтердің орны ауыстырылады. Тізімнің ең үлкен элементін бірінші өткенде тапқан кезде ол тізімнің соңына жеткенге дейін барлық кезекті элементтермен орын ауыстыра береді. Сондықтан екінші рет өткенде соңғы элементпен салыстыру қажет емес. Екінші рет өткенде тізімнің екінші элементі соңғы позициядан бастап екіншіге түседі. Процесті жалғастыра берсек әрбір өткен сайын ең болмағанда кезекті бір элемент өзінің орнында қалады. Бұл кезде ең кіші мәндер жоғары қарай жиналады. Егер қандай да бір өткен кезде ешқандай элементтердің орны ауыспаса, онда олардың барлығы қажетті ретпен тұр, және алгоритмнің орындалуын тоқтатуға болады. Әрбір өткенде бірден бірнеше элемент өзінің орнына жақындай түседі, тек біреуі ғана нақты орнында келеді.

Көпіршіктік сүрыптау (көпіршік әдісімен сүрыптау) (Пузырьковая сортировка (сортировка методом пузырька); bublle sorting) — реттелетін жиымның көрші элементтерін тізбектік орын ауыстырудан тұратын сұрыптау тәсілі. Тоғыстыру арқылы сүрыптау (Сортировка слиянием; merge sorting) — бірінші кезеңде жазбалар тобы жедел жадта сүрыпталатын өрі бірнеше таспаға жазылатын, ал екінші кезенде реттелген топтар бірнеше таспадан бір таспаға жинақталатын сыртқы сүрыптау



Достарыңызбен бөлісу:
1   ...   10   11   12   13   14   15   16   17   ...   21




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

    Басты бет