- •5В011100 - «Информатика» мамандығына арналған
- •1. Глоссарий
- •2. Дәрістер
- •Программалар анализінің ережелері:
- •Сұрыпталған тізбектерді біріктіру
- •Сұрыпталған тізбектерді біріктіру алгоритмі
- •Бинарлық іздеу.
- •Бір байланысты сызықтық тізім.
- •Табиғи бірігу арқылы сұрыптау
- •Байланған сызықтық тізімдер
- •Тізімдермен жүргізілетін операциялар
- •Реттелген тізімді жасау
- •Екі байланысты сызықтық тізім
- •Стек операциялары
- •Стектер қолданылады:
- •Шірет объектісімен жүргізілетін операциялар
- •Шіреттер қолданылады:
- •Приоритеттер шіреті
- •Тармақ тәрізді құрылымды беру әдістері
- •2. Кірістірілген жақшалар:
- •Кірістірілген жиындар.
- •4. Кесінді тізбек.
- •Екілік тармақтың құрылымы.
- •Өрнектердің екілік тармақтары
- •Екілік тармаќтармен ж‰ргізілетін амалдар
- •Тармаќты толыѓымен ќарап µту алгоритмі
- •Екілік іздеу тармаѓынан элементті алып тастау.
- •Турнирлік с±рыптау
- •Массивті пирамидаѓа т‰рлендіру
- •Пирамидаға элемент қосу
- •Элементтерді пирамидадан өшіру
- •Пирамидалық сұрыптау
- •Балансталған тармаққа қосу
- •3 Зертханалық сабақтар Зертханалық жұмыс №1
- •Жалпы мәлімет
- •Зертханалық жұмыс №2
- •Жалпы мәлімет
- •Тармақ тәрізді құрылымды беру әдістері
- •2. Кірістірілген жақшалар:
- •Кірістірілген жиындар.
- •4. Кесінді тізбек.
- •Зертханалық жұмыс №3
- •Жалпы мәлімет
- •Зертханалық жұмыс №4
- •Жалпы мәлімет
- •Ортасынан бөлу алгоритмі
- •Зертханалық жұмыс №5
- •Жалпы мәлімет
- •Ортасынан бөлу алгоритмі
- •Зертханалық жұмыс №6
- •Жалпы мәлімет
- •Екілік тармақтармен жүргізілетін амалдар
- •Зертханалық жұмыс №7
- •Жалпы мәлімет
- •Бинарлық іздеу.
- •Зертханалық жұмыс №8
- •Жалпы мәлімет
- •Зертханалық жұмыс №9
- •Жалпы мәлімет
- •Зертханалық жұмыс №10
- •Жалпы мәлімет
- •Зертханалық жұмыс №11
- •Жалпы мәлімет
- •Сұрыпталған тізбектерді біріктіру
- •Сұрыпталған тізбектерді біріктіру алгоритмі
- •4.Студенттердің өздік жұмыстар жоспары
- •Бақылаушы - өлшемдік құралдар
Зертханалық жұмыс №4
Тақырыбы:Іздеу есебін шешу.
Жалпы мәлімет
Массивтер көбінесе статистикалық мәліметтер, анықтамалық баслымдар, сөздіктер дайындауда қолданылады. Ақпаратты іздеудің ең қарапайым әдісі бұл жағдайда массивтың барлық элементтерін тізбектеп қарап шығу болып табылады. Іздеуді жеңілдету мақсатында массив мазмұны белгілі әдістермен сұрыпталып, реттеледі.
Мысалы: Реттелген массивте керекті элементті іздеу есебін және оны шешу алгоритмін қарастырайық.
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
Ортасынан бөлу алгоритмі жоғары тез әрекеттілікке ие. Негізінен ортасынан бөлу алгоритмінің идеясы көптеген алгоритмдер құруда пайдалы болып табылады. Алгоритмнің негізгі мәні «бөліп ал да, өкіміңді жүргіз» мағынасына келеді.
Бақылау сұрақтары:
Ортасынан бөлу әдісімен элементті іздеу идеясы неменеге негізделген?
Ортасынан бөлу әдісімен массив элементін іздеу алгоритмін жасаудағы әрекеттер тізбегін сипатта.
Тапсырмалар варианттары:
15 элементті массивті клавиатурадан енгізген бүтін сандардан сақтау программасын жаса. Массивтың мазмұны өсу реті бойынша сұрыпталады. Осыдан кейін, клавиатурадан бақылау саны енгізіледі де, массивте бар-жоғы тексеріледі. Бар болса, массивтің элементі номері монитор экранына шығарылады.
Массивте 10 әртүрлі бүтін сандарды сақтауды ұйымдастыратын программа жаса. Массивтың мазмұны өсу реті бойынша сұрыпталады. Осыдан кейін, клавиатурадан бақылау саны енгізіледі де, массивте бар-жоғы тексеріледі. Бар болса, массивтың бақылау санына тең элементі нольмен ауыстырылады да, массив монитор экранына шығарылады.
Массивте 15 әртүрлі бүтін сандарды сақтауды ұйымдастыратын программа жаса. Массивтың мазмұны кему реті бойынша сұрыпталады. Осыдан кейін, клавиатурадан бақылау саны енгізіледі де, массивте бар-жоғы тексеріледі. Бар болса, экранға бақылау санына дейінгі массив мазмұны шығарылады.
