
- •5В011100 - «Информатика» мамандығына арналған
- •1. Глоссарий
- •2. Дәрістер
- •Программалар анализінің ережелері:
- •Сұрыпталған тізбектерді біріктіру
- •Сұрыпталған тізбектерді біріктіру алгоритмі
- •Бинарлық іздеу.
- •Табиғи бірігу арқылы сұрыптау
- •Байланған сызықтық тізімдер
- •Бір байланысты сызықтық тізім.
- •Тізімдермен жүргізілетін операциялар
- •Реттелген тізімді жасау
- •Екі байланысты сызықтық тізім
- •Стек операциялары
- •Стектер қолданылады:
- •Шірет объектісімен жүргізілетін операциялар
- •Шіреттер қолданылады:
- •Приоритеттер шіреті
- •Тармақ тәрізді құрылымды беру әдістері
- •2. Кірістірілген жақшалар:
- •Кірістірілген жиындар.
- •4. Кесінді тізбек.
- •Екілік тармақтың құрылымы.
- •Өрнектердің екілік тармақтары
- •Екілік тармаќтармен ж‰ргізілетін амалдар
- •Тармаќты толыѓымен ќарап µту алгоритмі
- •Екілік іздеу тармаѓынан элементті алып тастау.
- •Турнирлік с±рыптау
- •Массивті пирамидаѓа т‰рлендіру
- •Пирамидаға элемент қосу
- •Элементтерді пирамидадан өшіру
- •Пирамидалық сұрыптау
- •Балансталған тармаққа қосу
- •3 Зертханалық сабақтар Зертханалық жұмыс №1
- •Жалпы мәлімет
- •Зертханалық жұмыс №2
- •Жалпы мәлімет
- •Тармақ тәрізді құрылымды беру әдістері
- •2. Кірістірілген жақшалар:
- •Кірістірілген жиындар.
- •4. Кесінді тізбек.
- •Зертханалық жұмыс №3
- •Жалпы мәлімет
- •Зертханалық жұмыс №4
- •Жалпы мәлімет
- •Ортасынан бөлу алгоритмі
- •Зертханалық жұмыс №5
- •Жалпы мәлімет
- •Ортасынан бөлу алгоритмі
- •Зертханалық жұмыс №6
- •Жалпы мәлімет
- •Екілік тармақтармен жүргізілетін амалдар
- •Зертханалық жұмыс №7
- •Жалпы мәлімет
- •Бинарлық іздеу.
- •Зертханалық жұмыс №8
- •Жалпы мәлімет
- •Зертханалық жұмыс №9
- •Жалпы мәлімет
- •Зертханалық жұмыс №10
- •Жалпы мәлімет
- •Зертханалық жұмыс №11
- •Жалпы мәлімет
- •Сұрыпталған тізбектерді біріктіру
- •Сұрыпталған тізбектерді біріктіру алгоритмі
- •4.Студенттердің өздік жұмыстар жоспары
- •Бақылаушы - өлшемдік құралдар
Пирамидаға элемент қосу
1. Жаңа элемент тізімнің соңынан қосылады:
2. Егер жаңа элемент өзінің ата-анасына қарағанда кіші мәнге ие болса, онда түйіннің орнын ауыстырамыз.
3
.
Жаңа ата-ана бала ретінде қарастырылады
да одан да ата-ана үшін пирамидада шарт
тексеріледі.
4. Осы процесс ата-ананың жолын қайталап, жаңа элементтен кіші ата-ананы кезіктіргенде немесе түбірлі түйінге келгенде тоқтайды.
Элементтерді пирамидадан өшіру
Мәліметтер қанашанда тармақтың түбірінен өшіріледі.
Түбірлік түйінді өшіріп, оны соңғы түйінмен алмастыру.
Егер жаңа түбірлік түйін өзінің ұрпақтарының кез келгенінен үлкен болса, онда оны өзінің кіші ұрпақтарымен орын ауыстыру керек.
3
.
Кіші ұрпақтар бойынша жүргізілетін осы
жол элемент ата-ана ретінде дұрыс
позицияға келгенше немесе тізімнің
соңына жеткенше далғасады.
Пирамидалық сұрыптау
Массивті пирамидаға түрлендіру.
А
(0)-ді тізбетеп жоққа шығару және оны А(n-1), А(n-2) т.с.с А(1)-ге дейін қосу. Пирамидалық сұрыптау процесінде кезекті ең кіші элементтер өшіріліп отырады да, тізбекті түрде массивтің соңғы жағына орналасады. Осылайша, кему реті бойынша сұрыпта жүргізіледі. Мысал: А(5)=(50,20,75,35,25).
Мысалға А(5)=(50,20,75,35,25)
1. 20-ны өшіріп, А(4)-ке сақтаймыз:
2. 25-ті өшіріп, А(3)-ке қоямыз:
3. 35-ті өшіріп, А(2)-ге қоямыз:
4. 50-ді өшіріп, А(1)-ге қоямыз:
Сонымен, түбірі ғана қалғандықтан, массив сұрыпталды.
Есептеу тиімділігі.
n элементтен тұратын массив тереңдігі k=log2n болатын аяқталған бинарлық тармаққа сәйкес келеді. Массивті пирамидаға түрлендіру n/2 операциядан тұрады. Олардың әрқйсысы k салыстырудан артық салыстыруды қажет етпейді. Сұрыптаудың екінші фазасы n-1 операциясын қажет етеді. Олардың әрқайсысы k салыстырудан тұрады. Пирамидалық сұрыптаудың ең жаман жағдайдағы күрделілігі k*n/2+k*(n-1)=((3n/2)-1) log2n тең болады. Алгоритмнің күрделілігі мынадай ретке тең: O(n log2n).
Пирамидалық сұрыптау қосымша жадыны қажет етпейді. Ал мысалға турнирлық сұрыптауға қосымша жаңа массив жасалу қажет.
Дәріс 15.
Балансталған тармақтар. Графтар.
Мақсаты: Балансталған тармақтар ұғымын енгізу. AVL тармақтары, балансталған тармақтарға қосу, алып тастау әрекеттерін түсіндіру. Графтар. Негізгі ұғымдары мен анықтамаларын беру. Көршілестік матрицасы, инцидиенттік матрицасы түсініктері.
Негізгі ұғымдар. Бинарлық тармақтар алпы мәліметтерге қол жеткізуге арналған. Идеалды яғни ең жақсы жағдайда тармақ балансталған болады және реттілік биіктігі O(nlog2n)-ға тең болады. Алайда, кейбір мәліметтер үшін тармақ туындаған болуы мүмкін. Онда оның биіктігі O(n)-ға тең болады және мәліметтерге кіру әжептәуір ақырындайды.
Тармақ балансталған болады сонда тек сонда ғана егер әрбір түйін үшін оның екі бұтағының биіктігі бір-бірінен бірге ғана айырмашылығы болса. Балансталған тармақтарды AVL тармақтар деп атайды (Ойлап тапқандардың фамилиялары бойынша – Адельсон-Венский-Ландис).
Іздеудің бинарлық тармағы:
AVL тармақтар берілуі іздеудің бинарлық тармағына ұқсас болады. Барлық операциялар ұқсас тек қана тармаққа қою және тармақтан алып тастау операциялары өзгеше. Сол жақ және оң жақ бұтақтың арақатынасы туралы ақпаратты сақтау үшін түйіннің типі анықтамасына ө р і с қосылады. Ол өріс сол жақ және оң жақ бұтақтың айырмасын көрсететін баланстық көрсеткіш. Егер баланс –1-ге тең болса, онда түйіннің сол жағы басады. Себебі, сол жақ бұтақтың биіктігі көп. Ал, баланс оң болса, онда түйін оңға қарай тартады. Жалпы биіктігі бойынша балансталған тармақ баланс -1-ге тең болады. Ал AVL тармақтары [-1;1] араларында тербеледі.