Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
/
Побудова та аналіз складності рекурсивних алгоритмів
ЗВІТ
до лабораторної роботи № 3
з дисципліни
" AЛГОРИТМИ ТА МЕТОДИ ОБЧИСЛЕНЬ"
МЕТА РОБОТИ
Вивчити основні методи організації рекурсивних алгоритмів та дослідження їх ефективності
2. ТЕОРЕТИЧНІ ВІДОМОСТІ
Задача сортування в програмуванні не вирішена повністю. Адже, хоча й існує велика кількість алгоритмів сортування, все ж таки метою програмування є не лише розробка алгоритмів сортування елементів, але й розробка саме ефективних алгоритмів сортування.
Ми знаємо, що одну й ту саму задачу можна вирішити за допомогою різних алгоритмів і кожен раз зміна алгоритму приводить до нових, більш або менш ефективних розв'язків задачі. Основними вимогами до ефективності алгоритмів сортування є перш за все часова ефективність та економне використання пам'яті. Згідно цих вимог, прості алгоритми сортування (такі, як сортування вибором і сортування вставкою) не є дуже ефективними.
Алгоритм сортування обміном, хоча і завершує свою роботу (оскільки він використовує лише цикли з параметром і в тілі циклів параметри примусово не змінюються) і не використовує допоміжної пам'яті, але займає багато часу. Навіть, якщо внутрішній цикл не містить жодної перестановки, то дії будуть повторюватись до тих пір, поки не завершиться зовнішній цикл.
Однак справедливе й зворотне. Яким би гарним і ефективним не був обраний алгоритм, але якщо в якості підзадачі він використовує "поганє" сортування, то вся робота з його оптимізації виявляється марною. Невдало реалізоване сортування вхідних даних здатне помітно знизити ефективність алгоритму в цілому.
ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ
Завдання:. Написати програму для ітераційної та рекурсивної форм обчислення значення функції згідно з варіантом Для рекурсивної форми обчислення використати рекурсивну функцію з виконанням дій на рекурсивному під’омі (для парних варіантів) або на рекурсивному спуску (для непарних варіантів). Порівняти ефективності ітераційної та рекурсивної форм обчислення значення функції.
Варіант 25 :
25)
Результат виконання програми.
/
Текст програми:
using System;
namespace Lab4
{
class Program
{
static void Fancshyn(double x, double a, int n)
{
n--;
if (n >= 0)
{
x = Math.Pow(x + 2, 2);
Console.WriteLine("Залишилось {0} дiї, число: {1}", n, x);
Fancshyn(x, a, n);
}
}
static void Main(string[] args)
{
// double y = 0;
Console.Write("Введiть кiлькiсть дiй n= ");
int n = Convert.ToInt32(Console.ReadLine());
Console.Write("х= ");
int x = Convert.ToInt32(Console.ReadLine());
Console.Write("a= ");
int a = Convert.ToInt32(Console.ReadLine());
// y = x;
Fancshyn(x, a, n);
Console.ReadKey();
}
}
}
Висновок: Вивчив основні методи організації рекурсивних алгоритмів та дослідження їх ефективності
.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!