Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Приклади аналізу трудомісткості алгоритмів↑ ⇐ ПредыдущаяСтр 4 из 4 Содержание книги
Поиск на нашем сайте
Як приклади застосування методики для аналізу алгоритмів по функції трудомісткості розглянемо декілька алгоритмів, що відносяться до класу N і різним підкласам класу NPR.
Приклад 1 (алгоритм знаходження суми елементів квадратної матриці)
Цей алгоритм виконує однакову кількість операцій при фіксованому значенні n. Таким чином, він є кількісно-залежним і належить до класу N. Функція трудомісткості обчислюється для цього алгоритму за формулою:
Приклад 2 (алгоритм пошуку максимального елемента масиву)
Стосовно операцій порівняння цей алгоритм є кількісно-залежним, оскільки завжди треба перевиряти всі n елементів. Але кількість операцій присвоювання залежить від місця, де саме розташований найбільший елемент в послідовності, тобто стосовно операцій перестановок цей алгоритм є кількісно-параметрично залежним. Отже, в загальному даний алгоритм є кількісно-параметрично залежним і належить до класу NPRS. Тому при фіксованому розмірі вхідних даних необхідно проводити окремий аналіз для найгіршого, найкращого та середнього випадків. 1) Найгірший випадок – найбільша кількість операцій присвоювання (max=a[i]) буде тоді, коли елементи масиву посортовані по зростанню. Трудомісткість алгоритму в такому випадку рівна: 2) Найкращий випадок – мінімальна кількість переприсвоювань максимального числа буде в тому випадку, коли максимальний елемент розташований на першому місці в масиві. Трудомісткість алгоритму в такому випадку рівна: 3) Середній випадок. Алгоритм пошуку максимуму послідовно перебирає елементи масиву, порівнюючи поточний елемент масиву з поточним значенням максимуму. На черговому кроці, коли проглядається і-ий елемент масиву, переприсвоювання максимуму відбудеться тоді, коли в підмасиві з перших і елементів максимальним елементом буде останній. Очевидно, що у випадку рівномірного розподілу a[i], ймовірність того, що максимальний з і елементів розташований в певній (останній) позиції дорівнює 1/і. Тоді в масиві з n елементів загальна кількість операцій присвоювання визначається як:
де γ≈ 0. 577216 ... (ця сума називається n -им гармонійним числом и позначається Hn; константа γ називається константою Ейлера). Таким чином, значення середньої кількості операцій присвоювання в алгоритмі пошуку максимума в масиві з n елементів визначається як:
Приклад 3 (алгоритм сортування масиву)
Алгоритм відноситься до класу NPRS, тому що кількість порівнянь і переміщень визначається для фіксованого набору значень елементів порядком їхнього розташування у вхідному масиві. Тому при фіксованому розмірі вхідних даних необхідно проводити окремий аналіз для найгіршого, найкращого та середнього випадків. Найгірший випадок – найбільша кількість операцій переміщень буде тоді, коли елементи масиву посортовані по спаданню. Спочатку порахуємо максимальну кількість переміщень для всіх елементів. Перший елемент масиву a[0] здійснить 0 переміщень, наступний елемент a[1] здійснить 1 переміщення і т.д., останній елемент масиву a[n-1] здійснить (n-1) переміщення. Отже:
Трудомісткість алгоритму в такому випадку рівна: 2) Найкращий випадок – мінімальна кількість переміщень буде тоді, коли елементи масиву посортовані по зростанню і непотрібно виконувати жодного переміщення. Трудомісткість алгоритму в такому випадку рівна: 3) Середній випадок. Для аналізу трудомісткості в середньому спочатку визначимо середню кількість порівнянь для і-го елемента:
Підсумуємо для всіх (n-1) елементів, які треба вставити:
Використовуючи методику аналізу алгоритмічних конструкцій, остаточно маємо:
ПОРЯДОК ВИКОНАННЯ РОБОТИ 1. При підготовці до лабораторної роботи, необхідно засвоїти теоретичний матеріал по темі і підготуватись до контрольного опитування по розумінню питань даної тематики. 2. Згідно з індивідуальним завданням розробити алгоритм розв’язання задачі. 3. Підготувати програмну реалізацію розробленого алгоритму. Засобами вбудованого тексто-вого редактора інтегрованого середовища набрати текст підготовленої програми. Відкомпілювати, налагодити та виконати програму. 4. Протестувати програму згідно зі складеною системою тестів і, при потребі, відкоректувати текст програми. Проаналізувати отримані результати. 5. Написати контрольне опитування по темі. 6. Оформити звіт по роботі. Без підготовкі до лабораторної роботи (програмної реалізації розробленого алгоритму) студент до роботи не допускається.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-26; просмотров: 362; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.36.106 (0.006 с.) |