Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
221_Avtosokhranenny.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
181.96 Кб
Скачать

Що таке алгоритм. Означення алгоритму. Приклади алгоритмів

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

1. ввести значення числа a

2. ввести значення числа b

3. обрахувати значення числа c за формулою с=a+b

4. вивести значення числа с

Алгоритм. Його властивості

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

– детермінованість (визначеність) – завдяки використанню повністю однозначних правил та дій при створені алгоритму, його застосування до однакових вхідних даних повинно приводити до отримання однакового результату (кожен крок алгоритму має інтерпретуватися виконавцем однозначно);

– дискретність – процес, що описується алгоритмом, можна розділити на окремі елементарні етапи, кожен з яких називається кроком алгоритму;

– ефективність – під час розв’язання задачі, алгоритмом може використовуватися лише обмежений обсяг комп’ютерних ресурсів і результат повинен бути досягнутий за певний ліміт часу;

– масовість –алгоритм повинен бути придатним для розв’язування всіх задач певного типу.

– результативність – обчислювальний процес, що реалізується за наданим алгоритмом, повинен через скінчену кількість етапів (кроків) зупинитись і надати результат, що відповідає заданим вхідним даним, або ж повідомити про неможливість розв’язання даного екземпляру задачі

Алгоритм. Способи запису алгоритмів

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

– вербальна – алгоритм описується при допомозі звичайної

– символьна – алгоритм описується при допомозі певного набору символів

– графічна –при допомозі блок-схем

Опис алгоритмів при допомозі блок-схем

Етапи повної побудови алгоритму

Постановка задачі..побудова моделі..розробка алгоритму..перевірка правильності алгоритму..реалізувати алгоритм..аналіз алгоритму та його складності..перевірити програму.. аналіз алгоритму та його складності..перевірити програму..інструкція .

Етапи постановки задачі та побудови моделі

1)які моделі підходять для цієї задачі.2)чи існують вже вирішення аналог задач ……1)чи вся вхідна інформ. Добре описана.2)чи існує матем величина асоційована з результатом..3)чи існують якісь корисні відношення в рамках цієї моделі..

Етапи розробки та перевірки правильності алгоритму

Вибір методу розробки, як правило, сильно залежить від вибору моделі, і може в значній мірі впливати на ефективність алгоритму розвязку. Два різних алгоритму можуть бути вірними, але дуже сильно відрізнятися по ефективності.Загальною методикою доведення правильності алгоритму є його опис у вигляді послідовності кроків, наприклад від 0 до m і знаходження деякої правомірності для кожного такого кроку. Далі намагаються надати докази скінченності алгоритму, при цьому розглядаються усі варіанти вхідних даних і отримання всіх підходящих вихідних даних.

Класифікація мов програмування

Мови програмування високого рівня оперують сутностями ближчими людині, такими як об'єкти, змінні, функції. Мови програмування нижчого рівня оперують сутностями ближчими машині: байти, адреси, інструкції. Текст програми на мові високого рівня зазвичай набагато коротший ніж текст такої самої програми на мові низького рівня, проте програма має більший розмір.

Універсальні та спеціалізовані.

Об'єктно-орієнтовані, логічні, функційні, структурні…

Поняття програми. Час виконання програми

Програма — передбачений хід подій у часі та порядок правил, що повинні застосуватись для проведення запланованого. Технічні програми обмежені у своєму виконанні та реагують на непередбачувані події лише в рамках запрограмованого.

На час виконання програми впливають наступні чинники.

1. Введення початкової інформації в програму.2. Якість скомпільованого коду виконуваної програми.3. Машинні інструкції (звичайні і спеціальні), використовувані для виконання програми.4. Часова складність алгоритму відповідної програми.

Метрика часу виконання програми

Асимптотичні співвідношення як метод аналізу якості алгоритму

На практиці для опису швидкості росту функції використовується О-символіка.

Коли говорять, що час виконання T(n) деякої програми має порядок O(n2), то мається на увазі, що існують такі додатні константи c і n0 що для всіх n більших і рівних n0 виконується нерівність T(n)≤cn2. Припускається, що всі функції часу виконання програми визначені на множені невід’ємних чисел і їх значення є також невід’ємними, але не обов’язково цілими. Кажуть, що T(n) має порядок O(f(n))  якщо існують такі константи c і n0 при яких для всіх nn0 виконується нерівність T(n)≤cf(n)

О-символіка. Функції часу виконання алгоритму

Для опису швидкості росту функції використовується О-символіка.

1 – більшість інструкцій більшості програм мають час виконання пропорційний деякій константі;

log N – коли час виконання програми є логарифмічним, програма стає повільнішою із ростом N. Такий час виконання як правило мають програми, що розбивають велику задачу на декілька під задач, зменшуючи при цьому на кожному кроці розмір задачі на деяке постійне число (при N=1000, log N=3).

N – коли час виконання програми є лінійним. (означає, що кожен вхідний елемент підлягає деякій обробці)

NlogN – час виконання пропорційний NlogN, виникає, коли алгоритм розв’язку задачі розбиває її на менші під задачі, розв’язує їх незалежно, а потім об’єднує.

N2 – час виконання задачі є квадратичним, Практичного застосовується лише для відносно невеликих задач. Отримується у випадку обробки алгоритмом всіх пар елементів вхідних даних. (При N=1000, N2 = 1 міл. При х2 – час виконання х4)

N3  схожий алгоритм, обробляє трійки елементів даних і має кубічний час росту. (При N=100, N3 = 1 міл. При х2 – час виконання х8)

2n  має експоненціональний час виконання. З’являється при спробах прямого розв’язку поставлених задач. (При N=20, N3 = 1 міл. При х2 – час виконання х*x)

Обчислення часу виконання програми. Правила.

Правило сум : O(max(f(n),g(n))).

Правило добутку : O(f(n)*g(n)).

1. Час виконання операторів присвоювання, читання і запису зазвичай має порядок О(1).

2. Час виконання послідовності операторів визначається з допомогою правила сум. Тому степінь росту часу виконання послідовності операторів без визначення констант пропорційно співпадає з найбільшим часом виконання оператора в даній послідовності.

3. Час виконання умовного оператора складається із часу виконання умовно виконуваних операторів і часу обрахунку самого логічного виразу. Час обрахунку логічного виразу зазвичай має порядок О(1). Час обрахунку для всіє конструкції if-then-else складається із часу обрахунку логічного виразу та найбільшого з часів, необхідних для виконання операторів, виконуваних при значені логічного виразу true і при значенні false.

4. Час виконання циклу є сумою часів всіх виконуваних ітерацій циклу, які в свою чергу складаються із часів виконання операторів циклу і часу обрахунку умови припинення циклу. (зазвичай О(1)).

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

1. Час виконання операторів присвоювання, читання і запису зазвичай має порядок О(1).

2. Час виконання послідовності операторів визначається з допомогою правила сум. Тому степінь росту часу виконання послідовності операторів без визначення констант пропорційно співпадає з найбільшим часом виконання оператора в даній послідовності.

3. Час виконання умовного оператора складається із часу виконання умовно виконуваних операторів і часу обрахунку самого логічного виразу. Час обрахунку логічного виразу зазвичай має порядок О(1). Час обрахунку для всіє конструкції if-then-else складається із часу обрахунку логічного виразу та найбільшого з часів, необхідних для виконання операторів, виконуваних при значені логічного виразу true і при значенні false.

4. Час виконання циклу є сумою часів всіх виконуваних ітерацій циклу, які в свою чергу складаються із часів виконання операторів циклу і часу обрахунку умови припинення циклу. (зазвичай О(1)).

Тип даних “Список”, його властивості

списком називають послідовність елементів певного типа, Основою властивістю списків, є можнливість лінійного впорядкування його елементів, тобто ми можемо стверджувати, що елемент ai  передує елементу ai+1 (для i=1,2,3,…n-1) і слідує за елементом  ai-1  (для n=2,3,…n).

Оператори для роботи із АТД “Cписок”

END(L) –  повертає позицію, яка слідує одразу після позиціх n в n-елементному списку.

INSERT (x, p, L) – оператор вставляє елемент x в позицію p в

LOCATE (x, L) – визначає позицію елемента x в списку L.

RETRIEVE (p, L) – повертає елемент, що знаходиться в позиції p в списку L.

DELETE (p, L) – видаляє елемент в позиції p із списку L.

NEXT (p, L) і PREVIOUS (p, L) – повертає наступну і попередню позиції від позиції p  в списку L

MAKENULL(L) – робить список порожнім, і повертає позицію END(L).

FIRST (L) – повертає першу позицію в списку,

PRINTLIST (L) – друк всі елементи в  списку L в порядку їх слідування.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]