Tofauti Kati ya Kujirudia na Kurudia

Orodha ya maudhui:

Tofauti Kati ya Kujirudia na Kurudia
Tofauti Kati ya Kujirudia na Kurudia

Video: Tofauti Kati ya Kujirudia na Kurudia

Video: Tofauti Kati ya Kujirudia na Kurudia
Video: TAFSIRI: KUOTA NDOTO ZENYE KURUDIA RUDIA MARA KWA MARA - MAANA NA ISHARA ZAKE 2024, Desemba
Anonim

Tofauti Muhimu – Recursion vs Iteration

Kujirudia na Kurudia kunaweza kutumika kutatua matatizo ya upangaji. Mbinu ya kutatua tatizo kwa kutumia kujirudia au kurudiarudia inategemea njia ya kutatua tatizo. Tofauti kuu kati ya kujirudia na kurudia ni kwamba urejeshaji ni utaratibu wa kuita kitendakazi ndani ya kitendakazi sawa huku marudio ni kutekeleza seti ya maagizo mara kwa mara hadi hali iliyopewa iwe kweli. Kujirudia na Kurudia ni mbinu kuu za kutengeneza algoriti na uundaji wa programu za programu.

Kujirudia ni nini?

Kitendakazi kinapojiita ndani ya chaguo za kukokotoa, kinajulikana kama Recursion. Kuna aina mbili za kujirudia. Ni ujirudiaji usio na kikomo na urudiaji usio na mwisho. Urudiaji wa mwisho una hali ya kukomesha. Urudiaji usio na mwisho hauna hali ya kukomesha.

Urejeshaji unaweza kuelezewa kwa kutumia programu kukokotoa vipengele.

n!=n(n-1)!, ikiwa n>0

n!=1, kama n=0;

Rejea msimbo ulio hapa chini ili kukokotoa kipengele cha 3(3!=321).

mkuu () {

thamani ya ndani=factorial (3);

printf(“Kiwanda ni %d\n”, thamani);

rudi 0;

}

intfactorial (intn) {

kama(n==0) {

kurudi 1;

}

nyingine {

return n factorial(n-1);

}

}

Unapopiga simu factorial (3), chaguo hili la kukokotoa litaita factorial (2). Wakati wa kupiga simu factorial (2), kazi hiyo itaita factorial (1). Kisha factorial (1) itaita factorial (0). factorial (0) itarudi 1. Katika programu iliyo hapo juu, n==0 hali katika "kama block" ni hali ya msingi. Kulingana na Vile vile, utendaji kazi wa factorial huitwa tena na tena.

Vitendaji vya kujirudia vinahusiana na rafu. Katika C, programu kuu inaweza kuwa na kazi nyingi. Kwa hiyo, kuu () ni kazi ya kupiga simu, na kazi ambayo inaitwa na programu kuu ni kazi inayoitwa. Wakati kazi inaitwa, udhibiti hutolewa kwa kazi inayoitwa. Baada ya utekelezaji wa kazi kukamilika, udhibiti unarudi kwa kuu. Kisha programu kuu inaendelea. Kwa hivyo, huunda rekodi ya kuwezesha au fremu ya rafu ili kuendelea na utekelezaji.

Tofauti Kati ya Kujirudia na Kurudia
Tofauti Kati ya Kujirudia na Kurudia
Tofauti Kati ya Kujirudia na Kurudia
Tofauti Kati ya Kujirudia na Kurudia

Kielelezo 01: Kujirudia

Katika mpango ulio hapo juu, wakati wa kupiga simu factorial (3) kutoka kwa main, huunda rekodi ya kuwezesha katika rafu ya simu. Kisha, sura ya mrundikano wa ukweli (2) huundwa juu ya rafu na kadhalika. Rekodi ya kuwezesha huhifadhi taarifa kuhusu viambajengo vya ndani n.k. Kila mara chaguo la kukokotoa linapoitwa, seti mpya ya vigeu vya ndani huundwa juu ya rafu. Fremu hizi za rafu zinaweza kupunguza kasi. Vivyo hivyo katika kujirudia, chaguo la kukokotoa hujiita. Ugumu wa wakati kwa kazi ya kujirudia hupatikana kwa idadi ya nyakati, kazi inaitwa. Utata wa saa kwa simu moja ya chaguo za kukokotoa ni O(1). Kwa n nambari ya simu zinazojirudia, utata wa saa ni O(n).

Kurudia ni nini?

Marudio ni safu ya maagizo ambayo hurudiwa tena na tena hadi sharti lililotolewa liwe kweli. Kurudia kunaweza kupatikana kwa kutumia "kwa kitanzi", "kufanya-wakati kitanzi" au "wakati kitanzi". sintaksia ya "for loop" ni kama ifuatavyo.

kwa (kuanzisha; sharti; rekebisha) {

// kauli;

}

Tofauti Muhimu Kati ya Kujirudia na Kurudia
Tofauti Muhimu Kati ya Kujirudia na Kurudia
Tofauti Muhimu Kati ya Kujirudia na Kurudia
Tofauti Muhimu Kati ya Kujirudia na Kurudia

Kielelezo 02: “kwa mchoro wa mtiririko wa kitanzi”

Hatua ya uanzishaji itatekelezwa kwanza. Hatua hii ni kutangaza na kuanzisha vigezo vya udhibiti wa kitanzi. Ikiwa hali ni kweli, taarifa zilizo ndani ya brashi zilizopinda hutekelezwa. Kauli hizo hutekelezwa hadi hali itakapokuwa kweli. Ikiwa hali ni ya uwongo, udhibiti huenda kwa taarifa inayofuata baada ya "kwa kitanzi". Baada ya kutekeleza taarifa ndani ya kitanzi, udhibiti huenda kurekebisha sehemu. Ni kusasisha utofauti wa udhibiti wa kitanzi. Kisha hali hiyo inaangaliwa tena. Ikiwa hali hiyo ni ya kweli, taarifa zilizo ndani ya braces curly zitatekelezwa. Kwa njia hii neno la "kwa kitanzi" linarudia.

Katika “wakati kitanzi”, taarifa zilizo ndani ya kitanzi hutekelezwa hadi hali iwe kweli.

wakati (hali){

//kauli

}

Katika kitanzi cha "fanya-wakati", hali huangaliwa mwishoni mwa kitanzi. Kwa hivyo, kitanzi kinatekelezwa angalau mara moja.

fanya{

//kauli

} wakati(hali)

Programu ya kupata kipengele cha 3 (3!) kwa kutumia marudio (“kwa kitanzi”) ni kama ifuatavyo.

int main(){

intn=3, factorial=1;

int;

kwa(i=1; i<=n; i++){

factorial=factoriali;

}

printf(“Factorial ni %d\n”, factorial);

rudi 0;

}

Je, Kuna Ufanano Gani Kati ya Kujirudia na Kurudia?

  • Zote ni mbinu za kutatua tatizo.
  • Jukumu linaweza kutatuliwa kwa kujirudia au kurudia.

Nini Tofauti Kati ya Kujirudia na Kurudia?

Recursion vs Iteration

Recursion ni mbinu ya kuita kitendakazi ndani ya kitendakazi sawa. Marudio ni safu ya maagizo ambayo hurudiwa hadi sharti lililotolewa liwe kweli.
Utata wa Nafasi
Utata wa nafasi wa programu zinazojirudia ni kubwa kuliko marudio. Utata wa nafasi ni mdogo katika marudio.
Kasi
Utekelezaji wa kujirudia ni wa polepole. Kwa kawaida, kurudia ni haraka kuliko kujirudia.
Hali
Ikiwa hakuna sharti la kusitishwa, kunaweza kuwa na urudiaji usio na kikomo. Ikiwa hali haitawahi kuwa uongo, itakuwa ni marudio yasiyo na kikomo.
Rafu
Katika kujirudia, rafu hutumika kuhifadhi vibadilishi vya ndani wakati chaguo la kukokotoa linapoitwa. Kwa kurudia, rafu haitumiki.
Kusomeka kwa Msimbo
Programu ya kujirudia inasomeka zaidi. Programu ya kurudia ni ngumu kusoma kuliko programu inayojirudia.

Muhtasari – Recursion vs Iteration

Makala haya yalijadili tofauti kati ya kujirudia na kurudia. Zote mbili zinaweza kutumika kutatua matatizo ya programu. Tofauti kati ya kujirudia na kurudia ni kwamba urejeshaji ni utaratibu wa kuita kazi ndani ya chaguo la kukokotoa sawa na kuirudia ili kutekeleza seti ya maagizo mara kwa mara hadi hali iliyopewa iwe kweli. Ikiwa tatizo linaweza kutatuliwa kwa njia ya kujirudia, linaweza pia kutatuliwa kwa kutumia marudio.

Pakua Toleo la PDF la Recursion vs Iteration

Unaweza kupakua toleo la PDF la makala haya na uitumie kwa madhumuni ya nje ya mtandao kulingana na dokezo la manukuu. Tafadhali pakua toleo la PDF hapa Tofauti Kati ya Kujirudia na Kurudia

Ilipendekeza: