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

  • suosittuja vertailuja: Lasten ja leikkikoulun välinen ero

    Lasten ja leikkikoulun välinen ero

    Keskeinen ero: Lastentarha muistuttaa lastenhoito- tai päiväkotikeskusta, jossa nämä lapset hoidetaan, joiden vanhemmat / huoltajat ovat töissä. Leikkikoulu viittaa oppilaitokseen, jossa lapsia opetetaan kouluopetuksen perusteissa käyttäen pelipohjaisia ​​oppimistekniikoita. Vanhemmilla, jotka ovat kiireisiä työskentelemällä päivän läpi, ei ole aikaa huolehtia lapsistaan; sen vuoksi he valitsevat lastenhoitolaitokset, kuten lastentarha. Lastentarhassa va
  • suosittuja vertailuja: Erot LG Optimus L5 II, L5 II Dual ja Micromax A116 Canvas HD

    Erot LG Optimus L5 II, L5 II Dual ja Micromax A116 Canvas HD

    Keskeinen ero: LG Optimus L5 II ja sen vastakappale LG Optimus L5 II Dual ovat yrityksen kaksi alkutason älypuhelinta. LG Optimus L5 II ja L5 II Dual ovat melko samankaltaisia, mutta eroavat tietyissä paikoissa, myös ulkonäöissä. Laitteessa on 4 tuuman True IPS LCD -kapasitiivinen kosketusnäyttö, joka tarjoaa noin 233 ppi pikselitiheyttä. Microma
  • suosittuja vertailuja: Päiväkodin ja Crechen välinen ero

    Päiväkodin ja Crechen välinen ero

    Keskeinen ero: Päiväkoti on paikka, jossa 3–5-vuotiaita lapsia opetetaan kouluopetuksen perusteita hyödyntämällä esimerkiksi pelipohjaista oppimista. Lastentarha on paikka, jossa lapset huolehditaan vanhempiensa / huoltajiensa poissa ollessa, jotka eivät voi jäädä heidän luoksensa työllistymisvelvoitteiden vuoksi. Päiväkoti on
  • suosittuja vertailuja: Curlingin ja jääkiekon välinen ero

    Curlingin ja jääkiekon välinen ero

    Keskeinen ero : Curling on urheilu, jossa pelaajat kulkevat kiviä jään levyn toisesta päästä toisessa päässä olevaan kohdealueeseen. Jääkiekko on joukkueurheilu, jossa on kuusi pelaajaa kummallakin puolella ja joka voitetaan voittamalla eniten maalintekijöitä vastustajan verkossa. Curlingia pelataan kahden joukkueen välillä, joista jokaisella on neljä pelaajaa. Pelin tavoitte
  • suosittuja vertailuja: BlackBerryn ja Iphonein välinen ero

    BlackBerryn ja Iphonein välinen ero

    Keskeinen ero: BlackBerry on BlackBerry Limitedin kehittämä ja valmistama tuotemerkki. Se käsittelee langattomia kannettavia laitteita ja palveluja. Toisaalta iPhone määrittelee joukon älypuhelimia, jotka Apple Inc. on suunnitellut ja markkinoineet. BlackBerry on BlackBerry Limitedin kehittämä ja valmistama tuotemerkki. Se käs
  • suosittuja vertailuja: Rehellisyyden ja uskollisuuden välinen ero

    Rehellisyyden ja uskollisuuden välinen ero

    Keskeinen ero: Rehellisyys määritellään rehellisyyden laaduksi. Rehellisyys tuo esiin totuuden, suoruuden ja riippuvuuden arvoisia piirteitä, kun taas uskollisuus voidaan kuvata uskollisuuden laaduksi. Uskollisuus on uskollisuudesta tai omistautumisesta, ja siihen liittyy kiintymystä ja kiintymystä. Rehel
  • suosittuja vertailuja: SLR: n ja digitaalikameran välinen ero

    SLR: n ja digitaalikameran välinen ero

    Keskeinen ero: SLR on kamera, jossa on automaattinen liikkuva peilijärjestelmä, jonka avulla voidaan kaapata tietty kuva. Liikkuva peili manipuloi, toimii ja ohjaa peiliin putoavaa valoa. Digikamera tunnetaan myös nimellä digicam. Ne ovat seuraaja normaalille kameratekniikalle, joka ei enää käytä elokuvia. SLR- j
  • suosittuja vertailuja: Jälleenmyyjän ja jälleenmyyjän välinen ero

    Jälleenmyyjän ja jälleenmyyjän välinen ero

    Keskeinen ero: Kaupassa jälleenmyyjän ja jälleenmyyjän toiminta on erilainen, eli vähittäiskauppias myy tuotteen loppukäyttäjälle, ja jälleenmyyjä ostaa tuotteen ja myy sen sitten kuluttajalle. Jälleenmyyjät ovat myyjiä, jotka myyvät tavaroita kuluttajille. Ne voidaan määritellä "yritykseksi tai henkilöeksi, joka myy tavaroita kuluttajalle, toisin kuin tukkukauppias tai toimittaja, joka tavallisesti myy tavaransa toiselle yritykselle". Jälleenmyyjät ova
  • suosittuja vertailuja: Obfuscationin ja salauksen välinen ero

    Obfuscationin ja salauksen välinen ero

    Tärkein ero: Salaus tarkoittaa tekniikkaa, jolla luottamuksellisia tietoja pidetään luottamuksellisina muuttamalla tiedon muotoa. Se muutetaan lukukelvottomaksi, jotta se pysyy turvallisena. Häiriö on hiljainen kuin salaus. Termiä käytetään kuitenkin yleensä ohjelmakoodin suojaamiseen yleisten tietojen sijasta. Se viitt

Toimituksen Valinta

Kretinismin ja hypotyreoosin välinen ero

Keskeinen ero : Hypothyroidism on kilpirauhanen aiheuttama kilpirauhashormonien riittämätön tuotanto. Kretinismi on kilpirauhashormonin puutteesta johtuva tila, joka aiheuttaa kääpiötä ja henkistä hidastumista. Se on läsnä syntymästä. Hypothyroidism on tila, joka johtuu kilpirauhasen heikosta kilpirauhashormonien tuotannosta. Se on tila