SlideShare a Scribd company logo
1 of 10
Поняття складності
алгоритмів
Алгоритми та програми
Який час потрібний для виконання програми,
що реалізує певний алгоритм? Чи можна
взагалі отримати результати обчислення за
даним алгоритмом на комп’ютері? На подібні
питання відповідає теорія алгоритмів - розділ
інформатики, що займається дослідженням
складності алгоритмів для розв'язання задач
на основі формально визначених моделей
обчислювальних пристроїв.
Що таке складність алгоритму?
Інтуїтивно можна виділити такі основні складові складності
алгоритму:
1.Логічна складність — кількість людино-місяців,
витрачених на створення алгоритму.
2. Статична складність — довжина опису алгоритмів
(кількість операторів).
3. Часова складність — час виконання алгоритму.
4. Ємнісна складність — кількість умовних одиниць
пам'яті, необхідних для роботи алгоритму.
Складність алгоритму
Складність алгоритму дозволяє визначитися з вибором
ефективного алгоритму серед тих, що побудовані для
розв’язання конкретної проблеми.
Складність алгоритму – це кількісна
характеристика, що відображує споживані
алгоритмом ресурси під час свого
виконання.
Оцінка складності
Складність алгоритмів зазвичай оцінюють за
часом виконання або по використовуваній
пам’яті. В обох випадках складність залежить від
розмірів вхідних даних: масив з 100 елементів
буде оброблений швидше, ніж аналогічний з
1000. При цьому мова йде не про точний час
обчислень, який залежить від процесора, типу
даних, мови програмування тощо. Оцінюється
складність при прагненні розміру вхідних даних
до нескінченності.
Складність алгоритму
Часова складність алгори́тму — характеристика
продуктивності алгоритму, що визначається
кількістю елементарних операцій, які потрібно
виконати для реалізації алгоритму.
При цьому вважають, що кожна елементарна операція виконується за однаковий час.
Часову складність оцінюють для найгіршого випадку і визначають як максимальний час,
необхідний для обробки алгоритмом будь-якої множини з n елементів.
Часова складність алгоритму зазвичай визначається виразом O (f (n)) (або так званої О—
нотації). Вираз O(f(n)) означає, що час виконання алгоритму зростає з тією ж швидкістю,
що і функція f (n).
Поширені складності алгоритмів
• Якщо час роботи алгоритму не залежить від обсягу вхідних даних, то
його часову складність позначають як O(1); приклад — визначення
значення третього елемента масиву, для чого не потрібно ні
запам’ятовувати елементи, ні проходити по ним декілька разів. Завжди
потрібно просто дочекатися в потоці вхідних даних третій елемент і це
буде результатом, на обчислення якого для будь—якої кількості даних
потрібний один і той же час.
• Лінійна складність O (n): подвоєння розміру задачі подвоїть і
необхідний час; приклади — алгоритм пошуку найбільшого елемента в
невідсортованому масиві, для чого потрібно переглянути всі n
елементів масиву; алгоритм додавання/віднімання чисел з n цифр.
Поширені складності алгоритму
• Квадратична складність O ( n2 ): час роботи алгоритму зростає
пропорційно квадрату кількості оброблюваних елементів,
подвоєння розміру задачі вчетверо збільшує необхідний час;
приклад — алгоритм сортування бульбашкою, що виконує два
вкладені цикли перебору масиву.
• Кубічна складність O ( n3 ): подвоєння розміру задачі збільшує
необхідний час у вісім разів. Припустимо, певним алгоритмом
потрібно виконати 4n3+7n умовних операцій, щоб обробити n
елементів вхідних даних. При збільшенні n на час роботи буде
значно більше впливати зведення n в куб, ніж множення його на 4
або ж додавання 7n.
Приклад:
Нехай дана послідовність з нулів та одиниць і нам потрібно
з'ясувати, чи є там хоч одна одиниця. Яку складність матиме
алгоритм розв’язання цієї задачі?
Розв’язання. Нехай n – кількість символів в послідовності. Алгоритм
буде послідовно перевіряти, чи немає одиниці в поточному місці
заданої послідовності, а потім рухатися далі, поки вхід не
скінчиться. Оскільки одиниця дійсно може бути тільки одна, для
отримання точної відповіді на це питання в гіршому випадку
доведеться перевірити всі n символів входу. Таким чином,
алгоритм має складність O (n), іншими словами, він лінійний.
Приклад:
Розглянемо код, який для масиву A[n, n] знаходить максимальний
елемент у кожному рядку.
for i:=1 to N do begin
max:=A[i,1];
for j:=1 to N do
if A[i,j]>max then max:=A[i,j]
writeln(max);
end;
У цьому алгоритмі змінна і змінюється від 1 до n. При кожній зміні і, змінна
j теж змінюється від 1 до n. Під час кожної з n ітерацій зовнішнього циклу,
внутрішній цикл теж виконується n раз. Загальна кількість ітерацій
внутрішнього циклу дорівнює n* n. Це визначає складність алгоритму O( n2
).

More Related Content

What's hot

комп'ютер як інформаційна система
комп'ютер як інформаційна системакомп'ютер як інформаційна система
комп'ютер як інформаційна системаOlena Bashun
 
Портфоліо вчителя інформатики Пазіної Наталії Вікторівни
Портфоліо вчителя інформатики Пазіної Наталії ВікторівниПортфоліо вчителя інформатики Пазіної Наталії Вікторівни
Портфоліо вчителя інформатики Пазіної Наталії ВікторівниNataliya Pazina
 
Мови програмування. Класифікація
Мови програмування. КласифікаціяМови програмування. Класифікація
Мови програмування. КласифікаціяAndy Levkovich
 
Етапи побудови інформаційної моделі
Етапи побудови інформаційної моделіЕтапи побудови інформаційної моделі
Етапи побудови інформаційної моделіal12309
 
редагування даних таблиці 7 клас
редагування даних таблиці 7 класредагування даних таблиці 7 клас
редагування даних таблиці 7 класaniadania
 
комп’ютерні програми і мови програмування
комп’ютерні програми і мови програмуваннякомп’ютерні програми і мови програмування
комп’ютерні програми і мови програмуванняЗахарова Олена
 
Урок 22 для 3 класу - . Використання логічних висловлювань з «не», «і», «або».
Урок 22 для 3 класу - . Використання логічних висловлювань з «не», «і», «або».Урок 22 для 3 класу - . Використання логічних висловлювань з «не», «і», «або».
Урок 22 для 3 класу - . Використання логічних висловлювань з «не», «і», «або».VsimPPT
 
презентація сервіси розміщення відео та аудіо
презентація   сервіси розміщення відео та аудіопрезентація   сервіси розміщення відео та аудіо
презентація сервіси розміщення відео та аудіоСергій Каляфіцький
 
Зберігання інформації. Носії інформації.
Зберігання інформації. Носії інформації.Зберігання інформації. Носії інформації.
Зберігання інформації. Носії інформації.V_Kobzar
 
Презентація до 17 уроку в 8 класі
Презентація до 17 уроку в 8 класіПрезентація до 17 уроку в 8 класі
Презентація до 17 уроку в 8 класіЮлія Артюх
 
Урок 9 для 6 класу - Додавання тексту до графічних зображень та його форматув...
Урок 9 для 6 класу - Додавання тексту до графічних зображень та його форматув...Урок 9 для 6 класу - Додавання тексту до графічних зображень та його форматув...
Урок 9 для 6 класу - Додавання тексту до графічних зображень та його форматув...VsimPPT
 
презентація безпечний інтернет
презентація безпечний інтернетпрезентація безпечний інтернет
презентація безпечний інтернетviolet1975
 
стратегії розвиткитку критичного і креативного розвитку молодших школярів. се...
стратегії розвиткитку критичного і креативного розвитку молодших школярів. се...стратегії розвиткитку критичного і креативного розвитку молодших школярів. се...
стратегії розвиткитку критичного і креативного розвитку молодших школярів. се...ssuser389ffd
 
1.2 Двійкове кодування. Одиниці вимірювання довжини двійкового коду. Кодуванн...
1.2 Двійкове кодування. Одиниці вимірювання довжини двійкового коду. Кодуванн...1.2 Двійкове кодування. Одиниці вимірювання довжини двійкового коду. Кодуванн...
1.2 Двійкове кодування. Одиниці вимірювання довжини двійкового коду. Кодуванн...Оксана Миколаївна Хоровець
 

What's hot (20)

6 клас урок 6
6 клас урок 66 клас урок 6
6 клас урок 6
 
Comics masha and the internet
Comics masha and the internetComics masha and the internet
Comics masha and the internet
 
комп'ютер як інформаційна система
комп'ютер як інформаційна системакомп'ютер як інформаційна система
комп'ютер як інформаційна система
 
Портфоліо вчителя інформатики Пазіної Наталії Вікторівни
Портфоліо вчителя інформатики Пазіної Наталії ВікторівниПортфоліо вчителя інформатики Пазіної Наталії Вікторівни
Портфоліо вчителя інформатики Пазіної Наталії Вікторівни
 
6 клас урок 17
6 клас урок 176 клас урок 17
6 клас урок 17
 
Мови програмування. Класифікація
Мови програмування. КласифікаціяМови програмування. Класифікація
Мови програмування. Класифікація
 
3 клас урок 32 як презентувати й оцінювати проект
3 клас урок 32 як презентувати й оцінювати проект3 клас урок 32 як презентувати й оцінювати проект
3 клас урок 32 як презентувати й оцінювати проект
 
Етапи побудови інформаційної моделі
Етапи побудови інформаційної моделіЕтапи побудови інформаційної моделі
Етапи побудови інформаційної моделі
 
редагування даних таблиці 7 клас
редагування даних таблиці 7 класредагування даних таблиці 7 клас
редагування даних таблиці 7 клас
 
комп’ютерні програми і мови програмування
комп’ютерні програми і мови програмуваннякомп’ютерні програми і мови програмування
комп’ютерні програми і мови програмування
 
Урок 22 для 3 класу - . Використання логічних висловлювань з «не», «і», «або».
Урок 22 для 3 класу - . Використання логічних висловлювань з «не», «і», «або».Урок 22 для 3 класу - . Використання логічних висловлювань з «не», «і», «або».
Урок 22 для 3 класу - . Використання логічних висловлювань з «не», «і», «або».
 
презентація сервіси розміщення відео та аудіо
презентація   сервіси розміщення відео та аудіопрезентація   сервіси розміщення відео та аудіо
презентація сервіси розміщення відео та аудіо
 
Зберігання інформації. Носії інформації.
Зберігання інформації. Носії інформації.Зберігання інформації. Носії інформації.
Зберігання інформації. Носії інформації.
 
Презентація до 17 уроку в 8 класі
Презентація до 17 уроку в 8 класіПрезентація до 17 уроку в 8 класі
Презентація до 17 уроку в 8 класі
 
Урок 9 для 6 класу - Додавання тексту до графічних зображень та його форматув...
Урок 9 для 6 класу - Додавання тексту до графічних зображень та його форматув...Урок 9 для 6 класу - Додавання тексту до графічних зображень та його форматув...
Урок 9 для 6 класу - Додавання тексту до графічних зображень та його форматув...
 
Безпечний інтернет 1
Безпечний інтернет 1Безпечний інтернет 1
Безпечний інтернет 1
 
презентація безпечний інтернет
презентація безпечний інтернетпрезентація безпечний інтернет
презентація безпечний інтернет
 
стратегії розвиткитку критичного і креативного розвитку молодших школярів. се...
стратегії розвиткитку критичного і креативного розвитку молодших школярів. се...стратегії розвиткитку критичного і креативного розвитку молодших школярів. се...
стратегії розвиткитку критичного і креативного розвитку молодших школярів. се...
 
1.2 Двійкове кодування. Одиниці вимірювання довжини двійкового коду. Кодуванн...
1.2 Двійкове кодування. Одиниці вимірювання довжини двійкового коду. Кодуванн...1.2 Двійкове кодування. Одиниці вимірювання довжини двійкового коду. Кодуванн...
1.2 Двійкове кодування. Одиниці вимірювання довжини двійкового коду. Кодуванн...
 
презентація поняття події
презентація   поняття подіїпрезентація   поняття події
презентація поняття події
 

Similar to Кодування алгоритмів. Поняття складності алгоритмів

2 алгортми
2 алгортми2 алгортми
2 алгортмиbasikk077
 
Алгоритмізація та програмування
Алгоритмізація та програмуванняАлгоритмізація та програмування
Алгоритмізація та програмуванняt0hins
 
алгоритми
алгоритмиалгоритми
алгоритмиborys1982
 
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листкуінформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листкуШкола №7 Миргород
 
Lesson # 44. repetition algorithms for processing quantities. loop with condi...
Lesson # 44. repetition algorithms for processing quantities. loop with condi...Lesson # 44. repetition algorithms for processing quantities. loop with condi...
Lesson # 44. repetition algorithms for processing quantities. loop with condi...Nikolay Shaygorodskiy
 
алгоритми
алгоритмиалгоритми
алгоритми1cana1
 
опорні схеми
опорні схемиопорні схеми
опорні схемиIrina Tabanets
 
Введення до теорії алгоритмів та програмування
Введення до теорії алгоритмів та програмуванняВведення до теорії алгоритмів та програмування
Введення до теорії алгоритмів та програмуванняssuser847e42
 
1218562
12185621218562
1218562nsahar
 

Similar to Кодування алгоритмів. Поняття складності алгоритмів (20)

2 алгортми
2 алгортми2 алгортми
2 алгортми
 
Алгоритмізація та програмування
Алгоритмізація та програмуванняАлгоритмізація та програмування
Алгоритмізація та програмування
 
алгоритми
алгоритмиалгоритми
алгоритми
 
01 Вступ
01 Вступ01 Вступ
01 Вступ
 
5971 789623
5971 7896235971 789623
5971 789623
 
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листкуінформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
 
6 клас урок 3
6 клас урок 36 клас урок 3
6 клас урок 3
 
Lesson # 44. repetition algorithms for processing quantities. loop with condi...
Lesson # 44. repetition algorithms for processing quantities. loop with condi...Lesson # 44. repetition algorithms for processing quantities. loop with condi...
Lesson # 44. repetition algorithms for processing quantities. loop with condi...
 
алгоритми
алгоритмиалгоритми
алгоритми
 
опорні схеми
опорні схемиопорні схеми
опорні схеми
 
Конспекти уроків
Конспекти уроків Конспекти уроків
Конспекти уроків
 
118
118118
118
 
Amo2020 lection2
Amo2020 lection2Amo2020 lection2
Amo2020 lection2
 
Введення до теорії алгоритмів та програмування
Введення до теорії алгоритмів та програмуванняВведення до теорії алгоритмів та програмування
Введення до теорії алгоритмів та програмування
 
урок 3
урок 3урок 3
урок 3
 
базовI структури алгоритму урок 4
базовI структури алгоритму урок 4базовI структури алгоритму урок 4
базовI структури алгоритму урок 4
 
1218562
12185621218562
1218562
 
6 2blog
6 2blog6 2blog
6 2blog
 
Povtor 7 8kl
Povtor 7 8klPovtor 7 8kl
Povtor 7 8kl
 
урок 9
урок 9урок 9
урок 9
 

Recently uploaded

upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfssuser54595a
 
Р.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняР.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняAdriana Himinets
 
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»tetiana1958
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»tetiana1958
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяAdriana Himinets
 

Recently uploaded (8)

upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
 
Р.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняР.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповідання
 
Віртуальна виставка нових надходжень 2-24.pptx
Віртуальна виставка нових надходжень 2-24.pptxВіртуальна виставка нових надходжень 2-24.pptx
Віртуальна виставка нових надходжень 2-24.pptx
 
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
 
Її величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptxЇї величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptx
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. Біографія
 
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
 

Кодування алгоритмів. Поняття складності алгоритмів

  • 2. Який час потрібний для виконання програми, що реалізує певний алгоритм? Чи можна взагалі отримати результати обчислення за даним алгоритмом на комп’ютері? На подібні питання відповідає теорія алгоритмів - розділ інформатики, що займається дослідженням складності алгоритмів для розв'язання задач на основі формально визначених моделей обчислювальних пристроїв.
  • 3. Що таке складність алгоритму? Інтуїтивно можна виділити такі основні складові складності алгоритму: 1.Логічна складність — кількість людино-місяців, витрачених на створення алгоритму. 2. Статична складність — довжина опису алгоритмів (кількість операторів). 3. Часова складність — час виконання алгоритму. 4. Ємнісна складність — кількість умовних одиниць пам'яті, необхідних для роботи алгоритму.
  • 4. Складність алгоритму Складність алгоритму дозволяє визначитися з вибором ефективного алгоритму серед тих, що побудовані для розв’язання конкретної проблеми. Складність алгоритму – це кількісна характеристика, що відображує споживані алгоритмом ресурси під час свого виконання.
  • 5. Оцінка складності Складність алгоритмів зазвичай оцінюють за часом виконання або по використовуваній пам’яті. В обох випадках складність залежить від розмірів вхідних даних: масив з 100 елементів буде оброблений швидше, ніж аналогічний з 1000. При цьому мова йде не про точний час обчислень, який залежить від процесора, типу даних, мови програмування тощо. Оцінюється складність при прагненні розміру вхідних даних до нескінченності.
  • 6. Складність алгоритму Часова складність алгори́тму — характеристика продуктивності алгоритму, що визначається кількістю елементарних операцій, які потрібно виконати для реалізації алгоритму. При цьому вважають, що кожна елементарна операція виконується за однаковий час. Часову складність оцінюють для найгіршого випадку і визначають як максимальний час, необхідний для обробки алгоритмом будь-якої множини з n елементів. Часова складність алгоритму зазвичай визначається виразом O (f (n)) (або так званої О— нотації). Вираз O(f(n)) означає, що час виконання алгоритму зростає з тією ж швидкістю, що і функція f (n).
  • 7. Поширені складності алгоритмів • Якщо час роботи алгоритму не залежить від обсягу вхідних даних, то його часову складність позначають як O(1); приклад — визначення значення третього елемента масиву, для чого не потрібно ні запам’ятовувати елементи, ні проходити по ним декілька разів. Завжди потрібно просто дочекатися в потоці вхідних даних третій елемент і це буде результатом, на обчислення якого для будь—якої кількості даних потрібний один і той же час. • Лінійна складність O (n): подвоєння розміру задачі подвоїть і необхідний час; приклади — алгоритм пошуку найбільшого елемента в невідсортованому масиві, для чого потрібно переглянути всі n елементів масиву; алгоритм додавання/віднімання чисел з n цифр.
  • 8. Поширені складності алгоритму • Квадратична складність O ( n2 ): час роботи алгоритму зростає пропорційно квадрату кількості оброблюваних елементів, подвоєння розміру задачі вчетверо збільшує необхідний час; приклад — алгоритм сортування бульбашкою, що виконує два вкладені цикли перебору масиву. • Кубічна складність O ( n3 ): подвоєння розміру задачі збільшує необхідний час у вісім разів. Припустимо, певним алгоритмом потрібно виконати 4n3+7n умовних операцій, щоб обробити n елементів вхідних даних. При збільшенні n на час роботи буде значно більше впливати зведення n в куб, ніж множення його на 4 або ж додавання 7n.
  • 9. Приклад: Нехай дана послідовність з нулів та одиниць і нам потрібно з'ясувати, чи є там хоч одна одиниця. Яку складність матиме алгоритм розв’язання цієї задачі? Розв’язання. Нехай n – кількість символів в послідовності. Алгоритм буде послідовно перевіряти, чи немає одиниці в поточному місці заданої послідовності, а потім рухатися далі, поки вхід не скінчиться. Оскільки одиниця дійсно може бути тільки одна, для отримання точної відповіді на це питання в гіршому випадку доведеться перевірити всі n символів входу. Таким чином, алгоритм має складність O (n), іншими словами, він лінійний.
  • 10. Приклад: Розглянемо код, який для масиву A[n, n] знаходить максимальний елемент у кожному рядку. for i:=1 to N do begin max:=A[i,1]; for j:=1 to N do if A[i,j]>max then max:=A[i,j] writeln(max); end; У цьому алгоритмі змінна і змінюється від 1 до n. При кожній зміні і, змінна j теж змінюється від 1 до n. Під час кожної з n ітерацій зовнішнього циклу, внутрішній цикл теж виконується n раз. Загальна кількість ітерацій внутрішнього циклу дорівнює n* n. Це визначає складність алгоритму O( n2 ).