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

Про матеріал
Поняття складності алгоритмів в комп'ютерній науці відноситься до виміру, який описує кількість ресурсів (таких як час, пам'ять, ) необхідних для виконання алгоритму. Це важливе поняття, яке допомагає визначити ефективність алгоритмів при вирішенні конкретних завдань. Складність алгоритмів може бути виміряна у різних аспектах, таких як часова складність (час, необхідний для виконання), емпірична складність (пам'ять, використана алгоритмом), та інші.
Зміст слайдів
Номер слайду 1

Поняття складності алгоритмів9 клас PYTHON

Номер слайду 2

Поняття складності алгоритмів. Розуміння складності алгоритмів важливо для програмістів будь-якого рівня. Складність алгоритму визначає, наскільки ефективно він працює при зростанні обсягу даних, з якими він працює. Зазвичай складність вимірюється часом виконання або кількістю операцій, які потрібні для завершення алгоритму.

Номер слайду 3

Поняття складності алгоритмів. Складність алгоритму - це міра його ресурсоємкості, тобто кількості ресурсів (часу, пам'яті), які він витрачає при виконанні, у залежності від розміру вхідних даних. Визначення складності допомагає розуміти, як алгоритм поводиться зі зростанням обсягу даних і оцінювати його ефективність.

Номер слайду 4

Поняття складності алгоритмів. Оцінка складності алгоритму - це процес визначення, наскільки ефективно або ресурсоємко працює алгоритм при обробці різних обсягів даних. Цей процес допомагає визначити, наскільки швидко або наскільки багато пам'яті потрібно для виконання алгоритму.

Номер слайду 5

Поняття складності алгоритмів. Часова складність: Це кількість операцій, які потрібно для завершення алгоритму. Вимірюється у часових одиницях, таких як секунди, мілісекунди, операції чи тактування процесора.Існують два основних типи складності: часова складність і просторова складність.Ємнісна складність: Це кількість пам'яті, яка потрібна для виконання алгоритму. Вимірюється у байтах або кількості потрібних змінних. Статична складність: Це кількість операторів, які він містить. Оператор може бути будь-якою командою (присвоєння значення змінній, виклик функції, умовний оператор, цикл та інші.)

Номер слайду 6

Поняття складності алгоритмів. Часова складність часто виражається у величині "O", яка називається "велике O". Наприклад, O(n), де "n" - це розмір вхідних даних. Наприклад, розглянемо простий алгоритм сортування списку чисел методом бульбашки. Він має часову складність O(n^2), оскільки у найгіршому випадку потрібно порівняти кожен елемент з кожним. Просторова складність цього алгоритму - O(1), оскільки він вимагає лише постійного обсягу додаткової пам'яті для збереження проміжних результатів. Цей код просто перевіряє кожну пару сусідніх елементів у списку і обмінює їх, якщо вони не впорядковані. Повторюється цей процес до тих пір, поки весь список не буде відсортований.

Номер слайду 7

Поняття складності алгоритмів. Отже, коли ми говоримо про часову складність алгоритму у формі O(f(n)), де (O: Це означає "в порядку", або "приблизно“, n: Це кількість елементів у вхідних даних, f(n): Це функція, яка визначає, як швидко зростає час виконання алгоритму зі збільшенням n.) , ми фактично описуємо те, як час виконання цього алгоритму змінюється в залежності від розміру вхідних даних, який позначається як n. Якщо ми кажемо, що часова складність алгоритму - O(f(n)), це означає, що час виконання зростає пропорційно зміні функції f(n). Іншими словами, якщо ми збільшимо розмір вхідних даних на певний множник, час виконання алгоритму також збільшиться у відповідному відношенні до значення функції f(n). Наприклад, якщо ми маємо алгоритм з часовою складністю O(n^2), це означає, що час виконання збільшується квадратично з розміром вхідних даних. Іншими словами, якщо ми збільшимо розмір вхідних даних у 2 рази, час виконання збільшиться у 4 рази (2^2).

Номер слайду 8

Поняття складності алгоритмів. Часову складність алгоритму O(1), виражає, що час виконання алгоритму не залежить від розміру вхідних даних. У цьому випадку, час виконання залишається постійним, незалежно від обсягу даних.Іншими словами, незалежно від того, чи маємо ми 10 елементів у списку, 1000, або навіть мільйон, час виконання алгоритму буде залишатися сталим. Наприклад, доступ до елементу у масиві за індексом, або отримання значення змінної, не залежить від кількості елементів у масиві чи обсягу даних. Такі операції мають часову складність O(1), оскільки вони виконуються за постійний час, незалежно від розміру вхідних даних.

Номер слайду 9

Поняття складності алгоритмів. Отже, ось простий приклад операції з часовою складністю O(1). Давайте розглянемо доступ до елементу у масиві за індексом: У цьому прикладі, незалежно від розміру списку my_list, час доступу до будь-якого елементу за його індексом (наприклад, my_list[0], my_list[2], тощо) залишається сталим. Операція отримання доступу до елементу виконується за постійний час, оскільки індексування списку не залежить від кількості елементів у ньому. Тому часова складність такої операції є O(1).

Номер слайду 10

Поняття складності алгоритмів. Лінійна складність O(n) означає, що час виконання алгоритму зростає пропорційно з розміром вхідних даних. Іншими словами, коли розмір вхідних даних (позначений як n) збільшується у 2 рази, час виконання алгоритму також збільшується у 2 рази. Це означає, що кожен елемент у вхідних даних обробляється алгоритмом один раз. Наприклад, якщо у вас є список з n елементів, алгоритм з лінійною складністю буде виконувати n операцій, де кожна операція обробляє один елемент у списку. Отже, коли ми кажемо, що часова складність алгоритму - O(n), ми виражаємо те, що зі збільшенням розміру вхідних даних час виконання зростає лінійно, а саме пропорційно кількості елементів у вхідних даних.

Номер слайду 11

Поняття складності алгоритмів. У цьому прикладі ми маємо два цикли, які проходяться по кожному елементу у списку. Кожен елемент у списку обробляється рівно один раз, тому час виконання цих циклів залежить лінійно від кількості елементів у списку. Таким чином, цей приклад має лінійну часову складність O(n). Ось простий приклад з лінійною складністю O(n)

Номер слайду 12

Поняття складності алгоритмів. Створити масив masiv з 10 випадкових чисел, кожне з яких може бути або 0, або 1. Після цього потрібно підрахувати кількість одиниць у цьому масиві та вивести цю кількість на екран. Якщо в масиві не має жодної одиниці, вивести повідомлення "Немає жодної одиниці у масиві."Складність даного коду: Часова складність цього коду - O(n), тобто лінійна, де n - кількість елементів у масиві. Ми проходимося по кожному елементу масиву лише один раз, тому час виконання зростає лінійно зі збільшенням розміру масиву. Емпірична пам'ятівикористання для цього коду буде пропорційно кількості елементів у масиві, тому вона також буде O(n).

Номер слайду 13

Поняття складності алгоритмів. У даній задачі ми створюємо масив masiv з 10 елементів, кожен з яких може бути випадковим числом 0 або 1. Потім ми обчислюємо кількість одиниць у цьому масиві та виводимо результат. Ось кроки, які ми виконуємо в даній задачі:Імпортуємо модуль random, щоб отримати доступ до функції randint(), яка дозволяє генерувати випадкові числа. Створюємо порожній масив masiv. За допомогою циклу for додаємо 10 випадкових чисел (0 або 1) до масиву masiv за допомогою функції random.randint(0, 1). Обчислюємо кількість одиниць у масиві, перебираючи кожен елемент масиву та збільшуючи лічильник kilkist_odynuc за умови, якщо поточний елемент дорівнює 1. Виводимо кількість одиниць у масиві, якщо вони є, або повідомляємо, що жодної одиниці у масиві немає

Номер слайду 14

Дякую за увагу!

pptx
Додано
27 квітня
Переглядів
960
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку