Font size
WorksheetsАлгоритм 40
Total questions: 40
Worksheet time: 20mins
Алгоритмның асимптотикалық күрделілігі
Бағдарламалау тілі, мәліметтердің типі, процессор түріне, т.б.
Алгоритмнің орындалу уақыты мен жады көлеміне тәуелділігі
Мәліметтердің құрылымы мен көлеміне тәуелділігі
Есептің нақты іске асырылу әдістері
Енгізу деректерінің максималды көлемі
Алгоритмдердің күрделілігі
Есептің орындалу уақыты және жадыны тиімді пайдалану
O(n), O(1), O(log n), O(n^2) сияқты нотация түрлері
Жағдайдың ең нашар, орташа және ең жақсы нұсқалары
Алгоритмді тиімді пайдалану көрсеткіші
Есептің кішігірім бөліктерге бөлінуі
Жағдайдың ең нашар нұсқасын көрсетеді немесе жоғарғы шекарасын
Big (үлкен) O (O – нотация) арқылы белгіленеді
Жағдайдың асқынған күрделілікке жетуі
Есептің енгізу деректерінің көлеміне байланысты ең нашар уақыт
Күрделілік O(n^2), O(n), O(log n) ретінде өлшенеді
Динамикалық және рекурсивті есептеулер
10 элементтен тұратын массивтың бірінші элементі мен соңғы элементінің қосындысын көрсету.
1
2
3
0
4
5 элементтен тұратын массивтың бірінші элементін көрсету. Бұл жерде кірістегі деректерді қанша көбейтседе (100, 1000, 10 000 элемент) мұнда бір ғана операция орындалады
O(1)
O(n)
O(log n)
O(n^2)
O(n log n)
Сызықты функция
fun pairSumSequence(n: Int): int {
var sum = 0
for (i in 0 until n) {
sum += pairSum(i, i + 1)
}
return sum
}
fun pairSum(a: Int, b: int) = a + b
Алгоритмның күрделілігін анықта.
O(n)
O(n^2)
O(log n)
O(1)
O(n log n)
Рекурсивті функция
fun sum(n: int): int {
if (n == 1) return 1
return n + sum(n - 1)
}
Алгоритмның күрделілігін анықта.
O(n)
O(log n)
O(n^2)
O(1)
O(n log n)
Алгоритмнің күрделілігі … өлшенеді
бір уақыт бірлігіндегі операция санымен
кірістегі мәліметтердің санымен
оперативты жадының көлемімен
тұрақты жады көлемімен
кэш жады көлемімен
O(n) - қолданады
алгоритмдардың күрделілігін бағалауда
алгоритмнің қасиетіне бағалауда
нейрондық желіде
массивтағы есептеулерде
математикалық статистикады
Сызықты іздеуде орташа және нашар уақыттық күрделілік
О(n), О(n)
O(log(n)), O(log(n)),
O(|E|+|V|)
O(|V|2), O(|V|2)
O(|V||E|), O(|V||E|)
Массивті басымдықты кезек ретінде қолданып Дейкстр алгоритмі
арқылы ең қысқа жолды іздеудегі орташа және нашар уақыттық күрделілік
O((|V|+|E|)log|V|), O((|V|+|E|)log|V|)
O(log(n)), O(log(n)),
O(|E|+|V|)
O(|V|2), O(|V|2)
O(|V||E|), O(|V||E|)
Тереңге (DFS) және еніне (BFS) іздеудегі орташа және нашар
уақыттық күрделілік
O(|E|+|V|)
О(n), О(n)
O(log(n)), O(log(n)),
O(|V|2), O(|V|2)
O(|V||E|), O(|V||E|)
Жылдам сұрыптаудағы ең жақсы, орташа және нашар уақыттық
күрделілік
O(n log(n)), O(n log(n)), О(n2)
О(n), О(n2), О(n2)
O(log(n)), O(log(n))
O(n+k),O(n+k),O(n2)
O(nk),O(nk),O(nk)
Деректердің құрылымына не жатпайды
хеш кесте
кезек
статикалық массив
ағаш
тізім, граф
Деректердің абстракты типі
тізім, кезек
тізбек
статикалық массив
байланысқан тізім
кесте
Деректердің сызықты типі
тура және тізбекті енуімен
параллельді және тізбекті енуімен
екіжақты және басты енуімен
біржақты және соңғы енуімен
статикалық және динамикалық енуімен
Элементтерді кірістіру (PUSH) және жою (POP) жоғарғы жағынан
(top) жүзеге асырылатын тізім тәрізді деректердің абстрактілі типі
стек (stack)
дек (deque)
кезек (queue)
жиын (set)
басымдықты кезек (priority queue)
Кез келген жерден элементтерді жояды және кірістіреді. Бір типті
элементтердің мәні (value) мен индекстер (index) жиының сақтайтын
деректердің абстрактілі типі
тізім (list)
стек (stack)
дек (deque)
кезек (queue)
жиын (set)
Кірістіру соңынан (tail, rear, back), ал жою алдынан жүзеге
асырылатын тізім тәрізді деректердің абстрактілі типі. «Бірінші келдін –
бірінші кеттің» принципімен жұмыс жасайлы.
кезек (queue)
тізім (list)
дек (deque)
стек (stack)
жиын (set)
Бір типтегі элементтердің жиыны. Элементтірді жою, қосу, іздеу
функцияларын сүйемелдейді. Осы деректер абстрактілі типі негізінде
ассоциативті массивтер (сөздіктер) және басымдықты тізім фундаменталдық
деректер типтері іске асырылады
жиын (set)
кезек (queue)
тізім (list)
дек (deque)
стек (stack)
Төбелер (vertices) және оларды байланыстырған қабырғаларынан
(edges) тұратын деректердің абстрактілі типі
граф (graph)
кезек (queue)
тізім (list)
дек (deque)
стек (stack)
Денесінде өз өзін шақыру амалы бар функция
рекурсия
цикл
шарт
іздеу
сұрыптау
Егер есеп үлкен болса, онда оны ішкі бөліктерге бөлу керек 2. Ішкі
бөліктерге рекурсия қолданып, ал егер кішкентай болса тікелей шешу керек 3.
1-ші мен 2-ші бөліктің комбинациясы
«Бөлде билік жүргіз»
«соңғы келіп, соңғы кетті»
«бірінші келіп, бірінші кетті»
«төменнен жоғарыға қарай шешу»
«жоғарыдан төменге қарай шешу»
Берілген n элементтен тұратын тізбекті реттеу
сұрыптау
іздеу
жою
кірістіру
жаңарту
Бірігу арқылы сұрыптау (merge sort) әдісіне негізделген…
«Бөлде билік жүргіз»
салыстыру бойынша элементтердін орнын ауыстыру
екі бөлікке бөлу
элементті салыстыру және керекті позицияға кірістіру
сандардың разряды бойынша салыстыру
Жылдам сұрыптау немесе Хоара (Quick-sort) әдісі
тірек элементіне негізделіп екі бөлікке бөлу
«бөлде билік жүргіз»
ең үлкен элемент массивтің соңына орналасады
элементті салыстыру және керекті позицияға кірістіру
сандардың разряды бойынша
Кірістру арқылы сұрыптау (Insertion-sort)
элементті салыстыру және керекті позицияға кірістіру
«бөлде билік жүргіз»
ең үлкен элемент массивтің соңына орналасады
екі бөлікке бөлу
сандардың разряды бойынша салыстыру
Алмастыру арқылы сұрыптау (Bubble-sort) немесе көпіршік
сұрыптау
массивтің ең үлкен элементің тізімнің соңына орналастырады
элементті салыстыру және керекті позицияға кірістіру
«бөлде биле»
екі бөлікке бөлу
сандардың разряды бойынша салыстыру
Цифрлық сұрыптау – рязряд бойынша (Radix-Sort)
сандардың разряды бойынша салыстыру
ең үлкен элемент массивтің соңына орналасады
элементті салыстыру және керекті позицияға кірістіру
«бөлде билік жүргіз»
екі бөлікке бөлу
Шелл (Shell Sort) сұрыптауы
массив екі элементтен бірнеше бөлікке бөлінеді
ең үлкен элемент массивтің соңына орналасады
элементті салыстыру және керекті позицияға кірістіру
«бөлде билік жүргіз»
екі бөлікке бөлу
Үйінді сұрыптауы ол
пирамидалық сұрыптау
жылдам сұрыптау
көпіршікті сұрыптау
кірістіру арқылы сұрыптау
разряд арқылы сұрыптау
Циклсыз байланысқан граф
Ағаштар
Жиын
Дек
Тізім
Стек
Түбірден кейінгі әр ұрпақта екі ұрпақтан немесе жапырақтардан
тұратын иерархиялық құрылым
бинарлық ағаш
бинарлық граф
екілік жүйе
көптармақты ағаштар
префиксті ағаш
Максималды элемент ... түбірінде орналасады
үйінді
тізім
жиын
кезек
стек
Дейкстр, Краскал, Прима, Хаффман алгоритмі жатады
сараң
жылдам
аңқау
қарапайым
пирамидальді
Алгоритм бір түйіннен басқа түйіндерге дейінгі ең кіші жолды
табады (графта қабырғалардың салмағы теріс болмауы керек)
Дейкстр
Краскал
Прима
Хаффман
Кнут-Моррис-Пратт
Биттік топтармен кодтау алгоритмі
Хаффман
Кнут-Моррис-Пратт
Дейкстр
Краскал
Прима
Қырлас-өлшенген (реберно-взвешанный) бағытталмаған графта
жатқан минималды орманды табады
Краскал
Хаффман
Кнут-Моррис-Пратт
Дейкстр
Прима
Минималды ағаш қаңқасын табатын сараң алгоритмдер
Краскал және Прима
Кнут-Моррис-Пратт
Дейкстра және Флойд
Хаффман алгоритмы
Бойер және Мур
Ассоциативті массивті іске асыруда қолданылатын деректер
құрылым
префиксті ағаш
жиын
бинарлық ағаш
бинарный граф
екілік жүйе
