Разлика између рекурзије и итерације

Кључна разлика - рекурзија вс Итератион
 

За решавање проблема са програмирањем могу се користити рекурзија и итерација. Приступ решавању проблема помоћу рекурзије или итерације зависи од начина за решавање проблема. Тхе кључна разлика између рекурзије и итерације је то рекурзија је механизам за позивање функције унутар исте функције док је итерација понављано извршавање низа упутстава све док наведени услов није тачан. Рекурзија и итерација су главне технике за развој алгоритама и изградњу софтверских апликација.

САДРЖАЈ

1. Преглед и кључне разлике
2. Шта је рекурзија
3. Шта је итерација
4. Сличности између рекурзије и понављања
5. Упоредна упоредба - Рекурзија вс Итерација у табеларном облику
6. Резиме

Шта је рекурзија?

Када се функција зове унутар функције она је позната као Рекурзија. Постоје две врсте рекурзије. Они су коначна рекурзија и бесконачна рекурзија. Коначна рекурзија има прекидно стање. Бесконачна рекурзија нема прекидно стање.

Рекурзија се може објаснити помоћу програма за израчунавање фабрика.

н! = н * (н-1) !, ако је н> 0

н! = 1, ако је н = 0;

Погледајте следећи код за израчун фактора 3 (3! = 3 * 2 * 1).

интмаин ()

инт вредност = факторски (3);

принтф (вредност фактора је% д \ н);

ретурн 0;

интфацториал (интн)

ако је (н == 0)

повратак 1;

елсе

вратити н * фактороријум (н-1);

Када позива факторе (3), ова функција ће позвати факторије (2). Када позива факторе (2), та ће функција назвати фактографску (1). Тада ће факторориал (1) назвати факторориал (0). факторориал (0) ће се вратити 1. У горе наведеном програму, н == 0 увјет у "иф блоцк" је основни увјет. Према Слично томе, фактографска функција се позива изнова и изнова.

Рекурзивне функције повезане су са снопом. У Ц-у, главни програм може имати много функција. Дакле, маин () је функција позива, а функција коју главни програм зове је функција која се зове. Када се функција позове, контрола се даје позваној функцији. Након извршења функције, контрола се враћа у главну. Затим се наставља главни програм. Дакле, ствара се активацијски запис или оквир снопа за наставак извршења.

Слика 01: Рекурзија

У горњем програму, када позивате факторориал (3) са главног, он креира активацијски запис у скупу позива. Затим се факторски (2) оквир снопа ствара на врху снопа и тако даље. Запис о активацији чува информације о локалним варијаблама итд. Сваки пут када се функција позове, ствара се нови сет локалних варијабли на врху снопа. Ови оквири снопа могу успорити убрзање. Исто тако у рекурзији функција се зове. Временска сложеност рекурзивне функције налази се колико се пута функција зове. Временска сложеност за један функцијски позив је О (1). За н број рекурзивних позива, временска сложеност је О (н).

Шта је итерација?

Итерација је блок инструкција које се понављају изнова и изнова док наведени услов није тачан. Итерација се може постићи употребом „фор петље“, „петље док траје“ или „док је петља“. Синтакса „за петљу“ је следећа.

за (иницијализација; услов; изменити)

// изјаве;

Слика 02: "за дијаграм тока петље"

Корак иницијализације прво се извршава. Овај корак је проглашавање и иницијализација варијабли управљања петљом. Ако је услов тачан, изјаве унутар коврчавих заграда извршавају се. Те изјаве се извршавају док услов није тачан. Ако је услов лажан, контрола прелази на следећу изјаву након „за петљу“. Након извршења изјава унутар петље, контрола прелази на измењени одељак. То је ажурирање променљиве за контролу петље. Тада се стање поново проверава. Ако је услов тачан, изјаве унутар коврчавих заграда извршават ће се. На овај начин се понавља „фор петља“.

У „док је петља“, изјаве унутар петље се извршавају док се услов не испуни.

вхиле (услов)

// изјаве

У петљи „до-вхиле“, стање се проверава на крају петље. Дакле, петља се извршава бар једном.

урадити

// изјаве

вхиле (услов)

Програм за проналажење фактора 3 (3!) Помоћу итерације („за петљу“) је следећи.

инт маин ()

интн = 3, факторски = 1;

инти;

за (и = 1; и<=n ; i++)

фактографски = фактографски * и;

принтф („Факторориал је% д \ н“, факторски фактор);

ретурн 0;

Које су сличности између рекурзије и понављања?

  • Обе су технике за решавање проблема.
  • Задатак се може решити било рекурзијом или итерацијом.

Која је разлика између рекурзије и понављања?

Рекурзија вс Итерација

Рекурзија је начин позивања функције унутар исте функције. Итерација је блок инструкција које се понављају док наведени услов није тачан.
Свемирска сложеност
Сложеност простора рекурзивних програма већа је од итерација. Сложеност простора је у итерацијама мања.
Брзина
Рекурзијско извршење је споро. Обично је итерација бржа од рекурзије.
Стање
Ако нема прекидног стања, може доћи до бесконачне рекурзије. Ако стање никад не постане лажно, то ће бити бесконачна итерација.
Гомила
У рекурзији, стацк се користи за спремање локалних варијабли када се функција зове. У итерацији, стацк се не користи.
Читљивост кода
Рекурзивни програм је читљивији. Итеративни програм је теже читати него рекурзивни.

Резиме - рекурзија вс Итератион

Овај чланак говори о разлици између рекурзије и итерације. Обоје се могу користити за решавање проблема програмирања. Разлика између рекурзије и итерације је у томе што је рекурзија механизам за позивање функције унутар исте функције и итерација је ради извршавања скупа упутстава више пута док наведени услов није тачан. Ако се проблем може решити у рекурзивном облику, може се решити и итерацијама.

Преузмите ПДФ верзију Рецурсион вс Итератион

Можете преузети ПДФ верзију овог чланка и користити је за оффлине употребу према напомени. Молимо преузмите ПДФ верзију овде. Разлика између рекурзије и понављања

Референце:

1.Поинт, Туториалс. „Структуре података и алгоритми основа алгоритма.“, Туториалс Поинт, 15. августа 2017. Доступно овде 
2.наресхтецхнологиес. „Рекурзија у Ц функцијама | Ц Лангуаге Туториал ”ИоуТубе, ИоуТубе, 12. септембра 2016. Доступно је овде  
3.иусуф схакеел. “Алгоритам рекурзије | Факторски - корак по корак водич ”ИоуТубе, ИоуТубе, 14. октобар 2013. Доступно овде  

Љубазношћу слике:

1.'ЦПТ-Рецурсион-Фацториал-Цоде'Би Плуке - Властито дело, (Публиц Домаин) преко Цоммонс Викимедиа 
2. 'За дијаграм петље' Ако није доступан машински читљив аутор - Претпостављен је сопствени рад. (ЦЦ БИ-СА 2.5) виа Цоммонс Викимедиа