Rekursion ja iteroinnin välinen ero

Keskeinen ero: Ohjelmoinnissa rekursio voidaan selittää rekursiivisella toiminnolla. Rekursiivinen toiminto on sellainen, joka kutsuu itseään toistamaan koodin. Toisaalta iterointi saavutetaan iteratiivisella funktiolla, joka silmukoi toistaa osan koodista.

Ohjelmoinnissa käytetään sekä rekursiota että iteraatiota toistojen saavuttamiseksi. Ne viittaavat prosessiin, joka toistetaan useita kertoja. Rekursio perustuu lähestymistapaan, jossa jokin viittaa itseensä siihen asti, kunnes ehto täyttyy. Menetelmän sanotaan olevan rekursiivinen, jos se voi kutsua itsensä joko suoraan tai välillisesti -

tyhjä nimi ()

{

... nimi () ...

}

tai

tyhjä nimi ()

{

... peli () ...

}

tyhjä peli () {

... nimi () ...

}

Onnistuneen rekursiota varten on muistettava, että jokainen rekursioprosessissa tehty puhelu on yksinkertaistettava laskemista. Rekursio saavutetaan määrittelemällä perustapa.

int factorial (int N)

{

jos (N == 0) palaa 1;

muuten palaa (N * tekijä (N-1));

}

Tässä esimerkissä rekursio voidaan helposti nähdä lausunnossa (N * faktoriaalinen (N-1)), jossa se kutsuu uudelleen tekijätoimintoa. Rekursio on erittäin hyödyllinen, koska se auttaa lyhentämään koodia. Rekursio on kuitenkin hieman hidas.

Iterointi perustuu silmukoihin. Nämä silmukat viittaavat selkeisiin iterointiprosesseihin. Silmukan vaatimuksen täyttämiseksi sillä on oltava jonkinlaiset kriteerit, jotka pysäyttävät edelleen iteroinnin. Jos silmukan ehtotesti ei kuitenkaan koskaan tule vääräksi, niin tässä tilanteessa ääretön silmukan esiintyminen on väistämätöntä. Tässä esimerkissä tekijä määritetään käyttämällä iterointiprosessia -

toimintatekijä (n)

{

var-silmukka, tulos;

tulos = 1;

ja (silmukka = 1; silmukan <= n; silmukka ++)

{

tulos = tulos * silmukka;

}

tuotto;

}

Tässä esimerkissä silmukointi saavutetaan käyttämällä kokonaislukuja 1: stä n: een, ja silmukan <= n-lausetta käytetään kriteerinä lopettamaan edelleen silmukointi. Näin ollen voidaan päätellä, että samat tulokset voidaan saavuttaa käyttämällä rekursiota ja iteraatiota. Ne molemmat perustuvat kuitenkin hieman erilaisiin lähestymistapoihin. Minkä tahansa rekursiivisen algoritmin voi kirjoittaa myös iteraatioilla (silmukoilla).

Rekursioiden ja iteroinnin vertailu:

rekursio

iteraatio

Määritelmä

Rekursio viittaa rekursiiviseen toimintoon, jossa se kutsuu itseään toistamaan koodin.

Iteraatio saavutetaan iteratiivisella funktiolla, joka silmukoi toistamaan osan koodista.

Tärkeä pointti

Perusasio on määritettävä

Lopetuksen ehto on määritettävä

Esitys

Verrattain hidas

Verrattain nopea

Muistin käyttö

Verrattain enemmän

Verrattain vähemmän

Koodi

pienemmät

Kauemmin

Äärettömän toiston

Ääretön rekursio pystyy kaatamaan järjestelmän

Ääretön silmukointi kuluttaa CPU-syklejä toistuvasti

Rakenne

Valinta

Toisto

Paikalliset muuttujat

Ei vaadittu

Vaaditaan

Suositeltava

Aiheeseen Liittyviä Artikkeleita

  • ero: Nokia Lumia 720: n ja LG Nexus 4: n välinen ero

    Nokia Lumia 720: n ja LG Nexus 4: n välinen ero

    Keskeinen ero: Nokia Lumia 720 on yksi uusimmista puhelimista, jotka ovat samanlaisia ​​kuin lippulaiva Lumia 920. Lumia 720: ssa on 1 GHz: n kaksisydäminen Snapdragon S4 -prosessori, jossa on 512 Mt RAM-muistia ja 8 Gt: n sisäistä tallennustilaa, joka on päivitettävissä 64: een GB. Puhelimessa on 6, 7 MP: n ensisijainen kamera, jossa on Carl Zeiss -optiikka, automaattitarkennus ja LED-salama. Siinä on
  • ero: Lainsäädännön ja asetuksen välinen ero

    Lainsäädännön ja asetuksen välinen ero

    Keskeinen ero: Lainsäädäntö on toinen termi, joka tarkoittaa lakia. Näitä lakeja on säätänyt lainsäätäjä tai maan hallintoelin. Lainsäädäntö voi merkitä myös lainsäädännön tekemistä. Asetuksia voidaan käyttää määrittelemään kaksi asiaa; Lainsäädännön ja kirjallisen välineen seuranta- ja täytäntöönpanoprosessi, joka sisältää sääntöjä, joilla on niitä koskeva lainsäädäntö. Lainsäädäntö ja sääntely ovat kaksi termiä, jotka
  • ero: FPO: n ja OFS: n välinen ero

    FPO: n ja OFS: n välinen ero

    Keskeinen ero: FPO (jatkotoiminta) tai OFS (Tarjous myyntiin) eivät ole täsmälleen samat, mutta ne palvelevat samaa tarkoitusta. Molemmat ovat menetelmiä kerätä rahaa myymällä enemmistöosakkaiden tai omistajien omistamia lisäosakkeita. Markkinat ovat usein sekava monille ihmisille, jotka eivät ole investoineet paljon aikaa ymmärtääkseen, miten osakemarkkinat toimivat. Joten mitä I
  • ero: RDRAM: n ja SDRAM: n välinen ero

    RDRAM: n ja SDRAM: n välinen ero

    Tärkein ero: SDRAM on dynaamisen satunnaisen muistin tyyppi, joka synkronoidaan järjestelmän väylän kanssa. RDRAM on sellainen muisti, joka voi tarjota nopean nykyisen muistin, jonka suurin nopeus on 100 MHz, ja siirtää tietoja jopa 800 MHz: iin. Tietokoneen suosion jälkeen otettiin käyttöön erilaisia ​​RAM-muotoja (Random-Access Memory). Jotta tietoko
  • ero: BMP: n ja JPG: n välinen ero

    BMP: n ja JPG: n välinen ero

    Tärkein ero: Sekä BMP että JPG ovat tiedostomuotoja digitaalisten kuvien tallentamiseen. BMP on bittikartan tiedostomuoto, kun taas JPG on JPEG-kuvan tiedostomuoto. Bittikartta viittaa yleensä pakkaamattomaan kuvaan. Tässä muodossa kuvat muokataan pikselinä pikselinä, jotka kootaan muodostamaan kuva. JPEG o
  • ero: Dwarf-planeettojen ja plutoidien välinen ero

    Dwarf-planeettojen ja plutoidien välinen ero

    Tärkein ero: Kääpiö planeetta on “auringon suora kiertorata, joka on tarpeeksi massiivinen, jotta sen muotoa voidaan ohjata gravitaatiolla, mutta toisin kuin planeetta, se ei ole poistanut muiden kohteiden kiertorataa”. trans-Neptunin kääpiö planeetta. Kansainvälinen tähtitieteellinen liitto (IAU) määrittelee kääpiö planeetan ”auringon suorassa kiertoradalla olevaksi taivaankappaleeksi, joka on tarpeeksi massiivinen, jotta sen muoto voidaan hallita gravitaatiolla, mutta toisin kuin planeetta ei ole selvittänyt muiden kohteiden kiertorataa. ”IAU hyväksyi termi
  • ero: Hampaiden ja hampaiden välinen ero

    Hampaiden ja hampaiden välinen ero

    Keskeinen ero: Hammas on pieni ja valkea rakenne, joka löytyy ihmisen suusta. "Hampaat" on hampaiden monikko. Se kuuluu epäsäännöllisten monikkojen ryhmään. Hampaita käytetään ruoan puremiseen ja pureskeluun. Hammas tarkoittaa pientä ja valkeaa rakennetta, joka löytyy selkärangattomien suusta. Sitä käytet
  • ero: Lentämisen ja levitaation välinen ero

    Lentämisen ja levitaation välinen ero

    Keskeinen ero: Lentäminen on lintujen, lentokoneiden ja / tai Supermanin tekemää. Ajattele, miten nämä asiat liikkuvat ilmassa. Heillä on tarkoitus, suunta; heillä on määräysvalta heidän liikkeistään. He voivat mennä sinne, missä he haluavat tai missä heidän pitäisi mennä, eli pisteestä A kohtaan B. Levitaatio on tois
  • ero: Wolfin ja ihmissusi välinen ero

    Wolfin ja ihmissusi välinen ero

    Keskeinen ero: Wolf on lihansyöjä, joka kuuluu koiran perheeseen. Ne ovat tunnettuja huutosta. Toisaalta ihmissusi on fiktiivinen humanoidihahmo, joka voi muuttua susiä yöllä. Susi on lihansyöjä, joka kuuluu Canidae-sukuun. Wolfin tieteellinen nimi on Canis Lupus. Se on koiran perheessä suurin. Sudet

Toimituksen Valinta

Päivähoidon ja päiväkodin välinen ero

Keskeinen ero: Päivähoito tarkoittaa laitosta, joka huolehtii ja valvoo imeväisiä ja pikkulapsia heidän laillisten vanhempiensa poissa ollessa. Lastentarha on eräänlainen esikoulu kolmivuotiaille lapsille. Joissakin paikoissa se merkitsee koulunkäynnin ensimmäistä vuotta ja keskittyy viiden vuoden ikäisiin lapsiin. Termien k