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 SGML un HTML

    Starpība starp SGML un HTML

    Galvenā atšķirība : SGML un HTML, abi ir datorprogrammēšanas valodas. Viņi abi ir labi pazīstamas valodas, ko izmanto, lai izstrādātu tīmekļa lapas. Tie ir rakstīti iepriekš definētos tagu elementos. Galvenā atšķirība būtu HTML ir SGML apakškopa. HTML apzīmē Hyper Text Markup Language. Tā ir labi pazīstama
  • tautas salīdzinājumi: Atšķirība starp zelta zivtiņu un koi

    Atšķirība starp zelta zivtiņu un koi

    Galvenā atšķirība : zelta zivtiņa un koi ir zivis, kas pieder pie Cyprinidae ģimenes. Koi ir karpu sugu veids, kam ir atšķirīgi stieņi uz lūpu, bet zelta zivtiņa ir karpu sugu veids, kam nav barbells. Gan zelta zivtiņa, gan koi ir populārās dekoratīvās zivis, kas pieder pie Cyprinidae ģimenes. Šīs zivis ir vai
  • tautas salīdzinājumi: Starp Judo un Kung Fu atšķirībām

    Starp Judo un Kung Fu atšķirībām

    Galvenā atšķirība: Džudo ir maigs japāņu mūsdienu cīņas mākslas un cīņas sporta veids, savukārt Kung Fu ir plašs un īpašs ķīniešu cīņas mākslas veids. Džudo ir tradicionāla un plaukstoša mūsdienu japāņu cīņas mākslas forma; to parasti izmantoja samuraju un feodālā kareivju klase vairāk nekā simtiem gadu. 1964. gadā tas kļuva par daļu no p
  • tautas salīdzinājumi: Starpība starp Kwashiorkor un Marasmus

    Starpība starp Kwashiorkor un Marasmus

    Galvenā atšķirība: Kwashiorkor ir nepietiekama uztura veids, ko izraisa nepietiekama olbaltumvielu uzņemšana, savukārt Marasmus izraisa nepietiekama olbaltumvielu, tauku un ogļhidrātu uzņemšana. Kwashiorkor un Marasmus gan ietilpst nepietiekama uztura kategorijā. Nepietiekams uzturs ir nopietns stāvoklis, kas rodas sakarā ar nepietiekamu uzturvielu uzņemšanu uzturā. Vārds Kwashiork
  • tautas salīdzinājumi: Starpība starp baltām olām un brūnām olām

    Starpība starp baltām olām un brūnām olām

    Galvenā atšķirība: baltas lobītas olas ražo vistas ar baltām spalvām un baltajām ausīm. Brūnās lobītās olas ražo vistām ar sarkanām spalvām un sarkanām ausu plaisām. Nav īpašas garšas vai uztura atšķirības starp baltām un brūnām olām. Šobrīd tirgū ir pieejami dažādi dažāda veida un dažāda izmēra olu veidi, tostarp baltas, brūnas, sarkanas, zaļas un zilas olas. Baltās olas un brūnas olas šodien ir div
  • tautas salīdzinājumi: Starpība starp tulku un kompilatoru

    Starpība starp tulku un kompilatoru

    Galvenā atšķirība: tulki tulko augsta līmeņa programmēšanas norādījumus starpposma kodos un pēc tam izpilda iegūtos kodus. Kompilatori tulko augsta līmeņa programmēšanas valodas kodus objektu kodos. Tulki izpilda koda rindu pēc rindas, savukārt kompilatori izpilda iegūtos failus. Tulks un kompilators spēlē ļoti svarīgu lomu programmu izpildē datorvalodā. Daudzi cilvēki mēdz dom
  • tautas salīdzinājumi: Starpība starp dzīvokli un dzīvokli

    Starpība starp dzīvokli un dzīvokli

    Galvenā atšķirība : starp dzīvokli un dzīvokli ir vairākas atšķirības. Tomēr viena galvenā atšķirība starp abām ir balstīta uz īpašumtiesībām; Condos parasti tiek iegādāti uz aizdevuma un pieder, bet dzīvokļi parasti tiek izīrēti. Mūsdienās „dzīvokļi un dzīvokļi”, šie divi dzīvojamo ēku veidi, kļūst ļoti populāri visā pasaulē. Iemesls to popularitātes pieaugumam ir balst
  • tautas salīdzinājumi: Starpība starp Brinjal un baklažānu

    Starpība starp Brinjal un baklažānu

    Galvenā atšķirība: Brinjal un baklažāni ir divi dažādi vārdi, kas attiecas uz to pašu augļu. Baklažāni ir pazīstami arī kā baklažāni, baklažāni, melongene un guinea skvošs. Baklažāni / Brinjal ir Solanales pasūtījuma un Solanum ģints biedrs. Brinjal ir mazāk izplatīts termins, kas ir dzirdams tādās valstīs kā Indija, bet baklažānu izmanto ASV. Pasaulē pastāv dažādas valodas,
  • tautas salīdzinājumi: Starpība starp Web Hosting un Web Publishing

    Starpība starp Web Hosting un Web Publishing

    Galvenā atšķirība: Web hostings attiecas uz pakalpojumu, kas saistīts ar interneta hostingu. Uzņēmumi, kas piedāvā šo pakalpojumu, nodrošina serveru datorus, lai saglabātu tīmekļa vietnes. Tīmekļa publicēšana attiecas uz procesu, kurā saturs tiek publicēts internetā. Tas vienkārši attiecas uz tīmekļa lapu izvietošanu vietā, kas ir pieejama lietotājiem. Tas parasti ietver tādu tī

Redaktora Izvēle

Starpība starp semantiku un pragmatiku

Galvenā atšķirība: semantika un pragmatika ir valodniecības nozares. Semantika attiecas uz vārda nozīmes izpēti bez konteksta. No otras puses, Pragmatics saprot valodas nozīmi, bet paturot prātā kontekstu. Vārds semantika ir atvasināts no grieķu vārda semantikos, kas nozīmē, lai parādītu vai dotu zīmes. Semantika ir jēgas