Starpība starp rekursiju un svārstībām

Galvenā atšķirība: Programmējot rekursiju var izskaidrot, ņemot vērā rekursīvo funkciju. Rekursīvā funkcija ir tāda, kas atkārtoti aicina atkārtot kodu. No otras puses, iterācija tiek sasniegta, izmantojot iteratīvu funkciju, kas atveido koda atkārtošanu.

Programmēšanā atkārtojumiem tiek izmantota rekursācija un iterācija. Tie attiecas uz procesu, kas tiek atkārtots vairākas reizes. Rekursija balstās uz pieeju, kurā kaut kas attiecas uz sevi, līdz nosacījums ir izpildīts. Tiek uzskatīts, ka metode ir rekursīva, ja tā var tieši vai netieši izsaukt sevi kā:

spēkā neesošs vārds ()

{

... vārds () ...

}

vai

spēkā neesošs vārds ()

{

... spēle () ...

}

spēkā neesoša spēle () {

... vārds () ...

}

Lai veiktu veiksmīgu rekursiju, ir jāpatur prātā, ka katram rekursijas procesā veiktam zvanam ir jāvienkāršo aprēķins. Rekursija tiek sasniegta, nosakot pamatgadījumu.

int faktors (int N)

{

ja (N == 0) atgriešanās 1;

cits atgriešanās (N * faktors (N-1));

}

Šajā piemērā rekursiju var viegli redzēt paziņojumā (N * faktors (N-1)), kur tā atkārtoti izsauc faktora funkciju. Rekursija ir ļoti noderīga, jo tā palīdz saīsināt kodu. Tomēr rekursija ir nedaudz lēna izpildījumā.

Iterācija ir balstīta uz cilpām. Šīs cilpas attiecas uz skaidriem iterācijas procesiem. Lai izpildītu cilpas prasības, tai ir jābūt kāda veida kritērijiem, kas pārtrauc turpmāku atkārtošanos. Tomēr, ja cilpas stāvokļa tests nekad nekļūst nepareizs, tad šajā stāvoklī bezgalīgas cilpas rašanās ir neizbēgama. Šajā piemērā faktori tiek noteikti, izmantojot iterācijas procesu -

funkciju faktori (n)

{

var cilpa, rezultāts;

rezultāts = 1;

par (cilpa = 1; cilpa <= n; cilpa ++)

{

rezultāts = rezultāts * cilpa;

}

atgriešanās rezultāts;

}

Šajā piemērā cilpošana tiek panākta, izmantojot veselus skaitļus no 1 līdz n, un cilpa <= n paziņojums tiek izmantots kā kritērijs, lai apturētu tālāku cilpošanu. Tādējādi varam secināt, ka tos pašus rezultātus var sasniegt, izmantojot rekursiju un iterāciju. Tomēr tās abas ir balstītas uz nedaudz atšķirīgām pieejām. Jebkuru rekursīvo algoritmu var rakstīt, izmantojot iterācijas (cilpas).

Recursion un Iteration salīdzinājums:

Rekursija

Iterācija

Definīcija

Rekursija attiecas uz rekursīvo funkciju, kurā tā vēlreiz aicina atkārtot kodu.

Iterācija tiek panākta, izmantojot iteratīvu funkciju, kas atveido koda atkārtošanu.

Svarīgs punkts

Ir jānosaka pamata gadījums

Ir jānosaka izbeigšanas nosacījums

Veiktspēja

Salīdzinoši lēns

Salīdzinoši ātri

Atmiņas lietošana

Salīdzinoši vairāk

Salīdzinoši mazāk

Kods

Mazāks

Ilgāks

Bezgalīga atkārtošanās

Bezgalīga rekursija spēj crashing sistēmu

Infinite looping atkārtoti izmanto CPU ciklus

Struktūra

Izvēle

Atkārtojums

Vietējie mainīgie

Nav nepieciešams

Nepieciešams

Ieteicams

Saistītie Raksti

  • tautas salīdzinājumi: Starpība starp ātrumu un vidējo ātrumu

    Starpība starp ātrumu un vidējo ātrumu

    Galvenā atšķirība: ātrums attiecas uz attāluma maiņas ātrumu attiecībā pret laiku. Tas ir vektora daudzums, kas nozīmē, ka tam ir gan virziens, gan lielums. Vidējais ātrums attiecas uz vidējo kopējo pārvietojumu brauciena laikā. To aprēķina, nosakot vidējo un galīgo ātrumu. Pozīcijas maiņu var dēvēt arī par pārvietojumu. Ātrums apzīmē attāluma maiņ
  • tautas salīdzinājumi: Atšķirība starp LG Optimus L7 II Dual un Nokia Lumia 720

    Atšķirība starp LG Optimus L7 II Dual un Nokia Lumia 720

    Galvenā atšķirība: LG Optimus L7 II Dual ir LG vidēja segmenta tālrunis. Tālrunis ir divējāds SIM tālrunis. Ierīcē ir 4, 3 collu IPS LCD, kapacitatīvais skārienekrāns ar izšķirtspēju 480 x 800 pikseļi. Tā darbojas uz Android v 4.1.2 (JellyBean), ko atbalsta 1, 0 GHz Dual-Core Qualcomm MSM8225 Snapdragon procesors un 768 MB RAM. Nokia Lumia 720 ir
  • tautas salīdzinājumi: Atšķirība starp bērnudārzu un pirmsskolas vecumu

    Atšķirība starp bērnudārzu un pirmsskolas vecumu

    Galvenā atšķirība: bērnudārzs ir drošs objekts, kurā atrodas bērni dienas laikā, kuru vecāki strādā aizņemti. Pirmsskola nozīmē izglītības iestādi, kurā bērni mācās skolas izglītības pamatus. Bērnu aprūpes vai bērnu aprūpes vai dienas aprūpes centri ir izrādījušies ģeniāli vecākiem, kuriem ir jāstrādā un nevar palikt mājās, lai rūpētos par saviem bērniem. Bērnu izslēgšana no šādas iestādes ļauj ve
  • tautas salīdzinājumi: Starpība starp Wiki un Website

    Starpība starp Wiki un Website

    Galvenā atšķirība: Wiki un tīmekļa vietnes ir tīmekļa lietojumprogrammas, kas darbojas internetā. Wiki ir sadarbības tīmekļa vietne, kuru vada konkrēta grupa, savukārt tīmekļa vietne ir jebkura šāda tīmekļa lapa, kas tiek piegādāta no jebkura tīmekļa domēna. Wiki ir tīmekļa lietojumprogramma, kas vada daudzas tās wiki tīmekļa lapas. Tas ir satura pārvaldības si
  • tautas salīdzinājumi: Starpība starp neprecētiem un vientuļiem ģimenes statusā

    Starpība starp neprecētiem un vientuļiem ģimenes statusā

    Galvenā atšķirība: neprecējies attiecas uz personas ģimenes stāvokli. Tajā ir minēts, ka vai nu viņš nekad nav bijis precējies, ne arī atkārtoti precējies pēc laulības šķiršanas, bet vientuļš varētu nozīmēt, ka persona ir likumīgi nodalīta, vai persona nekad nav bijusi precējusies. Gan neprecēti, gan vientuļ
  • tautas salīdzinājumi: Starpība starp Tally un SAP

    Starpība starp Tally un SAP

    Galvenā atšķirība: Tally un SAP ir gan programmatūra, kas sākās kā grāmatvedības programmatūra. Tally ir ieviesusi Peutronics Pvt. SIA (pašlaik pazīstama kā Tally Solutions Pvt. Ltd). SAP programmatūra pieder SAP, kas ir Vācijā reģistrēts uzņēmums. Tally un SAP piedāvā daudzus produktus. Tomēr tie galvenokārt
  • tautas salīdzinājumi: Starpība starp SENSEX un Nifty

    Starpība starp SENSEX un Nifty

    Galvenā atšķirība: SENSEX ir BSE Limited akciju tirgus indekss, kas agrāk bija pazīstams kā Bombay Stock Exchange. SENSEX indekss sastāv no 30 lielākajiem un aktīvāk tirgotajiem BSE krājumiem. Nifty ir Nacionālā fondu biržas (NSE) akciju tirgus indekss. Nifty sastāv no 50 lielākajiem un aktīvākajiem NSE krājumiem, kas aptver 22 Indijas ekonomikas sektorus. SENSEX un Nifty ir
  • tautas salīdzinājumi: Pārvaldības un administrācijas atšķirība

    Pārvaldības un administrācijas atšķirība

    Galvenā atšķirība: administrācija veido organizācijas mērķus un politiku. Vadība īsteno šīs politikas un mērķus. Pārvaldība un administrēšana dažkārt tiek izmantota aizvietojamā veidā; tomēr tie ir divi dažādi organizācijas līmeņi. Administrācija ir organizācijas augstākais līmenis ar izšķirošām funkcijām. Tās ir atbildīgas par organizācijas
  • tautas salīdzinājumi: Atšķirība starp korejiešu un japāņu sejas formu

    Atšķirība starp korejiešu un japāņu sejas formu

    Galvenā atšķirība: faktiskā redzamā atšķirība starp dažādām Āzijas etniskajām grupām ir neliela, ja tāda vispār ir. Kopumā tiek teikts, ka japāņu cilvēkiem ir garāka vai ovāla seja ar plašākām vai lielākām acīm un izteiktāka deguna ar izteiktāku tiltu. Korejiešiem, šķiet, ir plakanākas sejas ar augstākiem un asākiem vaigu kauliem ar mazākām acīm. Tomēr šīs atšķirības var atšķirties at

Redaktora Izvēle

Atšķirība starp maksājuma rīkojumu un pieprasījuma projektu

Galvenā atšķirība: Maksājuma rīkojums un pieprasījuma projekts pamatā tiek izmantots tam pašam mērķim, bet atšķiras viena no otras. Maksājuma rīkojums ir maksājuma veids, kas ir jāizpilda tās bankas īpašajā filiālē, kura to izdevusi. Pieprasījuma projekts ir maksājuma veids, kas tiek dzēsts jebkurā izdevējas filiāles filiālē. Maksājuma rīkojums un piepras