Каква е основната разлика между контура и рекурсия в C?


Отговор 1:

Казват, че набор от държавни стъпки е в цикъл, ако се изпълнява многократно. Рекурсиите са набор от изявления, които се обаждат многократно. В перспективата на компютъра всеки път, когато се прави рекурсивно повикване, е все едно да раждате отново същата функция.

Примките и рекурсиите са в много отношения еквивалентни. Винаги можете да превеждате контури на рекурсии и обратно.

Рекурсивните функции заемат повече стек пространство, тъй като всеки път, когато се прави рекурсивен разговор, се създава нов екземпляр от функцията. Препоръчително е да използвате рекурсии, само ако почувствате, че след всяко повторно извикване проблемът в ръка ще стане по-опростен и може да бъде решен чрез повторение на процеса. Например, кулата на проблема с ханой.

Loops са по-ефективни, защото те не растат стека.


Отговор 2:

По принцип цикълът в C се отнася до набор от оператори, които се изпълняват многократно, наричани също итерация.

напр., защото е цикъл, докато е цикъл, докато е цикъл

като има предвид, че рекурсията просто е техника на функция, раждаща себе си (или призовавайки се отново и отново, докато някое условие не бъде изпълнено)

по-долу е код за отпечатване на числа от 1 до 100 с итерация и рекурсия.

  1. рекурсия
# включват 
използване на stdpace пространство на имената;

невалиден printn (int i)
{
ако (i! = 1)
{
printn (i - 1);
cout << i << endl;
}
else cout << i << endl;
 }

int main ()
{
printn (100); // това е с рекурсия
връщане 0;
}

2. използвайки контур (за контур)

# включват 
използване на stdpace пространство на имената;

int main ()
{
за (int i = 0; i <= 100; i ++)
съд << и << Endl;

връщане 0;
}

Отговор 3:

ИНЕРАЦИИ ЗА ВЕРСУС НА ВЪЗСТАНОВЯВАНЕ

Рекурсия срещу итерация

Рекурсията е терминът, даден на механизма за определяне на набор или процедура от гледна точка на себе си

Блокът на оператора се изпълнява многократно с помощта на бримки

На някои места използването на рекурсия генерира допълнителни разходи, затова е по-добре да прескочите, когато лесното решение е на разположение

Всички проблеми не могат да бъдат решени с итерация.

В тялото на функцията е необходимо условно изявление за спиране на изпълнението на функцията

Самият оператор за контрол на итерация съдържа изявление за спиране на итерацията. При всяко изпълнение състоянието се проверява.

Рекурсията е скъпа по отношение на скоростта и паметта

Итерацията не създава режийни разходи. Всички езици за програмиране поддържат итерация

За повече изтегляне на приложение за Android:

C език за програмиране - всичко в едно - приложения в Google Play


Отговор 4:

Помислете за проблем с размер N,

При рекурсия разбивате проблема до по-малък размер, например N / 2 и друг N / 2. Всеки от подпроблемите N / 2 допълнително се разделя на N / 4 и N / 4. Продължавате да разделяте проблема, докато не е възможно повече подразделение.

Това работи, защото ако например разделите проблема с размер N на 4 подпроблема в еднакъв размер, тогава

N / 4 + N / 4 + N / 4 + N / 4 = 4N / 4 = N.

Сега всичко, от което се нуждаете, е да разрешите всеки от тези по-малки проблеми и тъй като вече знаем, че комбинирането на всички 4 части ще ни даде решение на основния проблем (решение на проблем с размер N).

За да разрешим по-малък проблем, ние наричаме определена функция рекурсивно.

Цикълът се използва, за да се реши колко пъти трябва да повторим изчисление, дадено с две

условия,

  1. първоначално условие - по този начин цикълът започва - условие за прекратяване - тук се прекратява цикъл.

между тези две условия цикълът изпълнява изчислителната логика многократно.

Накратко, цикълът трябва да удовлетворява Hoare троен,

{P} C {Q}

P - Предварително условие

C - команда

Q - Postcondition

Можете да прочетете за троен Хоаре на уики - Лорек на Хоаре - Уикипедия


Отговор 5:

Помислете за проблем с размер N,

При рекурсия разбивате проблема до по-малък размер, например N / 2 и друг N / 2. Всеки от подпроблемите N / 2 допълнително се разделя на N / 4 и N / 4. Продължавате да разделяте проблема, докато не е възможно повече подразделение.

Това работи, защото ако например разделите проблема с размер N на 4 подпроблема в еднакъв размер, тогава

N / 4 + N / 4 + N / 4 + N / 4 = 4N / 4 = N.

Сега всичко, от което се нуждаете, е да разрешите всеки от тези по-малки проблеми и тъй като вече знаем, че комбинирането на всички 4 части ще ни даде решение на основния проблем (решение на проблем с размер N).

За да разрешим по-малък проблем, ние наричаме определена функция рекурсивно.

Цикълът се използва, за да се реши колко пъти трябва да повторим изчисление, дадено с две

условия,

  1. първоначално условие - по този начин цикълът започва - условие за прекратяване - тук се прекратява цикъл.

между тези две условия цикълът изпълнява изчислителната логика многократно.

Накратко, цикълът трябва да удовлетворява Hoare троен,

{P} C {Q}

P - Предварително условие

C - команда

Q - Postcondition

Можете да прочетете за троен Хоаре на уики - Лорек на Хоаре - Уикипедия


Отговор 6:

Помислете за проблем с размер N,

При рекурсия разбивате проблема до по-малък размер, например N / 2 и друг N / 2. Всеки от подпроблемите N / 2 допълнително се разделя на N / 4 и N / 4. Продължавате да разделяте проблема, докато не е възможно повече подразделение.

Това работи, защото ако например разделите проблема с размер N на 4 подпроблема в еднакъв размер, тогава

N / 4 + N / 4 + N / 4 + N / 4 = 4N / 4 = N.

Сега всичко, от което се нуждаете, е да разрешите всеки от тези по-малки проблеми и тъй като вече знаем, че комбинирането на всички 4 части ще ни даде решение на основния проблем (решение на проблем с размер N).

За да разрешим по-малък проблем, ние наричаме определена функция рекурсивно.

Цикълът се използва, за да се реши колко пъти трябва да повторим изчисление, дадено с две

условия,

  1. първоначално условие - по този начин цикълът започва - условие за прекратяване - тук се прекратява цикъл.

между тези две условия цикълът изпълнява изчислителната логика многократно.

Накратко, цикълът трябва да удовлетворява Hoare троен,

{P} C {Q}

P - Предварително условие

C - команда

Q - Postcondition

Можете да прочетете за троен Хоаре на уики - Лорек на Хоаре - Уикипедия