Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных" - Presentation Transcript

    1. Хакасский государственный университет им. Н.Ф. Катанова Структуры и алгоритмы обработки данных Лекция: Анализ алгоритмов Николай Гребенщиков, www.grebenshikov.ru
    2. Анализ алгоритмов - теоретическое исследование произво- дительности компьютерных программ и потребляемых ими ресурсов. 1
    3. Что важнее, чем производительность? 2
    4. • Правильность • Удобство и простота использования • Простота поддержки (простая архитектура) • Безопасность • Расширяемость 3
    5. Зачем исследовать алгоритмы и производительность? 4
    6. Производительность - это капитал, который тратится на функции программы. 5
    7. Задача: Cортировка Дано: последовательность чисел < a1, a2, ..., an > Найти: перестановку < a1, a2, ..., an >, что a1 ≤ a2 ≤, ..., ≤ an 6
    8. Insertion-Sort(A, n) 1 for j ← 2 to n 2 do key ← A[j] 3 £ Insert A[j] into the sorted sequence A[1 . . j − 1]. 4 i←j−1 5 while i > 0 and A[i] > key 6 do A[i + 1] ← A[i] 7 i←i−1 8 A[i + 1] ← key 7
    9. 8
    10. Пример работы сортировки методом вставок 9 (1) 5 7 3 2 1 9 (5) 7 3 2 1 5 9 (7) 3 2 1 5 7 9 (3) 2 1 3 5 7 9 (2) 1 2 3 5 7 9 9
    11. Время работы • зависит от входных данных (например, отсортированный массив) • зависит от размера входных данных • необходимо знать верхнюю границу (гарантия) 10
    12. Виды анализа • Найхудший случай: T (n) - максимальное время для лю- бых входных данных размера n. • Средний случай: T (n) - ожидаемое время для любых вход- ных данных размера n. (Необходимо допущение???) • Наилучший случай - надувательство. 11
    13. Время работы InsertionSort в наихудшем случае? Зависит от компьютеров • относительная скорость (одна и та же машина) • абсолютная скорость (раные машины) 12
    14. Решение: Ассимтотический анализ • Игнорировать влияние копьютера на время работы алго- ритма • Исследовать рост T (n) при n → ∞ 13
    15. Ассимтотическия нотация • Θ-нотация. Отбросить менее значимые части формулы и коэфициенты. 4n3 + 12n2 − 10n + 1234 = Θ(n3) 14
    16. Сравнение алгоритмов Θ(n3) и Θ(n2) 15
    17. Анализ: сортировки вставками Наихудший случай: входные данные отсортированны в об- ратном порядке. n T (n) = Θ(n) = Θ(n2) (арифметическая прогрессия) 2 Быстра ли данная сортировка? • Да, для малых n • Нет, для больших n 16
    18. Сортировка слиянием A[1..n] 1. Если n = 1, то конец. 2. Рекурсивно сортируем A[1.. n/2 ] и A[ n/2 + 1..n]. 3. Слияние отсортированных массивов. 17
    19. Пример слияния отсортированных массивов? T (n) = Θ(n), где n - общее число элементов 18
    20. T (n) - Сортировка слиянием A[1..n] 1. Θ(1) - Если n = 1, то конец. 2. 2T (n/2) - Рекурсивно сортируем A[1.. n/2 ] и A[ n/2 + 1..n]. 3. Θ(n) - Слияние отсортированных массивов. 19
    21. Рекурсия Θ(1) n=1; T (n) = 2T (n/2) + Θ(n) n>1. Дерево рекурсии: T (n) = 2T (n/2) + cn, c − const, c > 0 20
    22. Дерево рекурсии Дерево рекурсии: T (n) = 2T (n/2) + cn, c − const, c > 0 21
    23. Дерево рекурсии 22
    24. Дерево рекурсии 23
    25. Дерево рекурсии T (n) = cn·log2(n)+Θ(n) = Θ(n)·log2(n)+Θ(n) = Θ(n·log2(n)+ n) = Θ(n · log2(n)) 24
    26. Сравнение алгоритмов сортировки • Сортировка вставками - Θ(n2) • Сортировка слиянием - Θ(n ∗ log2(n)) 25
    27. Список литературы • Ахо А., Хопкрофт Д., Ульман Д. Структуры данных и алгоритмы. - М. : Издательский дом “Вильямс”, 2000. сс.27-36. • Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгорит- мы: построение и анализ, 2-е издание. - М. : Издатель- ский дом “Вильямс”, 2007. сс.11-15. 26
    SlideShare Zeitgeist 2009

    + Nikolay GrebenshikovNikolay Grebenshikov Nominate

    custom

    57 views, 0 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 57
      • 57 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories