
- •5В011100 - «Информатика» мамандығына арналған
- •1. Глоссарий
- •2. Дәрістер
- •Программалар анализінің ережелері:
- •Сұрыпталған тізбектерді біріктіру
- •Сұрыпталған тізбектерді біріктіру алгоритмі
- •Бинарлық іздеу.
- •Табиғи бірігу арқылы сұрыптау
- •Байланған сызықтық тізімдер
- •Бір байланысты сызықтық тізім.
- •Тізімдермен жүргізілетін операциялар
- •Реттелген тізімді жасау
- •Екі байланысты сызықтық тізім
- •Стек операциялары
- •Стектер қолданылады:
- •Шірет объектісімен жүргізілетін операциялар
- •Шіреттер қолданылады:
- •Приоритеттер шіреті
- •Тармақ тәрізді құрылымды беру әдістері
- •2. Кірістірілген жақшалар:
- •Кірістірілген жиындар.
- •4. Кесінді тізбек.
- •Екілік тармақтың құрылымы.
- •Өрнектердің екілік тармақтары
- •Екілік тармаќтармен ж‰ргізілетін амалдар
- •Тармаќты толыѓымен ќарап µту алгоритмі
- •Екілік іздеу тармаѓынан элементті алып тастау.
- •Турнирлік с±рыптау
- •Массивті пирамидаѓа т‰рлендіру
- •Пирамидаға элемент қосу
- •Элементтерді пирамидадан өшіру
- •Пирамидалық сұрыптау
- •Балансталған тармаққа қосу
- •3 Зертханалық сабақтар Зертханалық жұмыс №1
- •Жалпы мәлімет
- •Зертханалық жұмыс №2
- •Жалпы мәлімет
- •Тармақ тәрізді құрылымды беру әдістері
- •2. Кірістірілген жақшалар:
- •Кірістірілген жиындар.
- •4. Кесінді тізбек.
- •Зертханалық жұмыс №3
- •Жалпы мәлімет
- •Зертханалық жұмыс №4
- •Жалпы мәлімет
- •Ортасынан бөлу алгоритмі
- •Зертханалық жұмыс №5
- •Жалпы мәлімет
- •Ортасынан бөлу алгоритмі
- •Зертханалық жұмыс №6
- •Жалпы мәлімет
- •Екілік тармақтармен жүргізілетін амалдар
- •Зертханалық жұмыс №7
- •Жалпы мәлімет
- •Бинарлық іздеу.
- •Зертханалық жұмыс №8
- •Жалпы мәлімет
- •Зертханалық жұмыс №9
- •Жалпы мәлімет
- •Зертханалық жұмыс №10
- •Жалпы мәлімет
- •Зертханалық жұмыс №11
- •Жалпы мәлімет
- •Сұрыпталған тізбектерді біріктіру
- •Сұрыпталған тізбектерді біріктіру алгоритмі
- •4.Студенттердің өздік жұмыстар жоспары
- •Бақылаушы - өлшемдік құралдар
Зертханалық жұмыс №5
Тақырыбы: Іздеу есебін шешу. Толық іздеу: тармақтар және шекаралар әдістері. Динамикалық программалау.
Жалпы мәлімет
Массивтер көбінесе статистикалық мәліметтер, анықтамалық баслымдар, сөздіктер дайындауда қолданылады. Ақпаратты іздеудің ең қарапайым әдісі бұл жағдайда массивтың барлық элементтерін тізбектеп қарап шығу болып табылады. Іздеуді жеңілдету мақсатында массив мазмұны белгілі әдістермен сұрыпталып, реттеледі.
Мысалы: Реттелген массивте керекті элементті іздеу есебін және оны шешу алгоритмін қарастырайық.
N элементтен тұратын нақты сандардың А реттелген массивы берілген. Массивте В саны бар ма, егер бар болса оның массивтегі номерін анықтау керек.
А массивында В –ға тең элемент бар болып, A[p]=B болатындай қандай да бір p индексі бар болсын. Кез-келген салыстырудың A[s]<B (1<s<n) нәтижесі бойынша біз p 1 ден s ке дейінгі диапазонда жатыр ма, әлде s+1 ден n –ге дейінгі диапазонда жатыр ма жылдам анықтай аламыз. Екінші жағдай A[s]<B теңсіздігі дұрыс болса орындалады, ал біріншісі дұрыс емес болса орындалады. Осы салыстырудың қасиеті ортасынан бөлу алгоритмінде қолданылады.
Ортасынан бөлу алгоритмі
Алдымен массивтың шеткі элементтері 1 мен n – ді элементті іздеу шекраралары ретінде алады да, осы шекараларды қадамнан кейін қадам жүргізе отырып, бір-біріне сәйкес келгенше жалғастыра береді: B ны A[s] пен, мұнда s - шекаралардың арифметикалық ортасының бүтін бөлігі, егер A[s]<B, онда бұрынғы төменгі шекараны s+1 ге ауыстыру керек, ал жоғарғы шекара өзгеріссіз қалады, әйтпесе төменгі шекара өзгеріссіз қалып, жоғарғыны s ке ауыстырады. Программа түрінде бұл былайша беріледі, фрагментте p мен q айтылған жоғарғы және төменгі шекараларды көрсетеді:
p:=1; q:=n;
while p<q do
begin
s:=(p+q) div 2;
if a[s]<b then p:=s+1
else q:=s;
end;
Схема түрінде іздеу процесін келесі схема түрінде бейнелеуге болады:
+-------------------------0-------------------------------+
¦ +---------------1---------------¦
¦ +-------2--------+ ¦
¦ ¦ +----3---¦ ¦
¦ ¦ +--4-+ ¦ ¦
¦ ¦ +-5+ ¦ ¦ ¦
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Ортасынан бөлу алгоритмі жоғары тез әрекеттілікке ие. Негізінен ортасынан бөлу алгоритмінің идеясы көптеген алгоритмдер құруда пайдалы болып табылады. Алгоритмнің негізгі мәні «бөліп ал да, өкіміңді жүргіз» мағынасына келеді.
Бақылау сұрақтары:
Ортасынан бөлу әдісімен элементті іздеу идеясы неменеге негізделген?
Ортасынан бөлу әдісімен массив элементін іздеу алгоритмін жасаудағы әрекеттер тізбегін сипатта.
Тапсырмалар варианттары:
10 бүтін сан массивы беріледі. Оны сұрыптап, ондағы бақылау санын тап. Бақылау санына дейінгі барлық элементтерді қарама-қарсыға өзгерт.
20 символдан тұратын массив берілген. Сұрыптап, ондағы бақылау символын тап. Экранға бақылау символынан бастағандағы элементтерді шығар.
20 саннан тұратын А массивы берілген. Оны кему реті бойынша орналастыр. Клавиатурадан 2 a және b бақылау сандарын енгіз. Сандар массивында a мен b аралығында жатқан сандардың бар-жоғын тексер. Бар болса, табылған сандар мен индекстерін экранға шығар.