Rekursiooni ja lteratsiooni erinevus

Oluline erinevus: programmeerimisel saab rekursiooni seletada rekursiivse funktsiooni arvestamisega. Rekursiivne funktsioon on kood, mis kordab koodi kordamiseks. Teisest küljest saavutatakse iteratsioon iteratiivse funktsiooniga, mis lõhub koodi mõne osa kordamist.

Programmeerimisel kasutatakse korduste tegemiseks rekursiooni ja iteratsiooni. Need viitavad protsessile, mida korratakse mitu korda. Rekursioon põhineb lähenemisviisil, milles midagi viitab ennast, kuni tingimus on täidetud. Meetod on rekursiivne, kui ta võib ise või kaudselt nimetada -

tühine nimi ()

{

... nimi () ...

}

või

tühine nimi ()

{

... mäng () ...

}

tühine mäng () {

... nimi () ...

}

Edukaks rekursiooniks tuleb meeles pidada, et iga rekursiooniprotsessis tehtud kõne peab arvutust lihtsustama. Rekursioon saavutatakse baasjuhtumi määratlemisel.

int faktoriaal (int N)

{

kui (N == 0) naasta 1;

muu tagasi (N * faktoriaal (N-1));

}

Selles näites võib rekursiooni hõlpsasti näha avalduses (N * faktoriaal (N-1)), kus ta kutsub uuesti faktoriaalfunktsiooni. Rekursioon on väga kasulik, kuna see aitab koodi lühendada. Kuid rekursioon on jõudluses veidi aeglane.

Iteratsioon põhineb silmustel. Need silmused viitavad selgesõnalistele iteratsiooniprotsessidele. Silmusnõude täitmiseks peab sellel olema teatud tüüpi kriteeriumid, mis peatavad edasise iteratsiooni. Siiski, kui silmusekontroll ei muutu kunagi valeks, siis on selles tingimustes vältimatu lõpmatu tsükli esinemine. Selles näites määratakse faktoriaal iteratsiooniprotsessi abil -

funktsionaalne faktoriaal (n)

{

var loop, tulemus;

tulemus = 1;

jaoks (loop = 1; silmus <= n; silmus ++)

{

tulemus = tulemus * silmus;

}

tagastamise tulemus;

}

Selles näites saavutatakse silmus, kasutades täisarvusid vahemikus 1 kuni n, ja loop <= n avaldust kasutatakse kriteeriumina, et lõpetada edasine silmus. Seega võime järeldada, et samu tulemusi on võimalik saavutada rekursiooni ja iteratsiooni abil. Need mõlemad põhinevad siiski veidi erinevatel lähenemisviisidel. Igat rekursiivset algoritmi saab kirjutada ka iteratsioonide (silmus) abil.

Rekursiooni ja iteratsiooni võrdlus:

Rekursioon

Iteratsioon

Määratlus

Rekursioon viitab rekursiivsele funktsioonile, milles ta ennast uuesti koodi kordamiseks kutsub.

Iteratsioon saavutatakse iteratiivse funktsiooni abil, mis aheneb koodi mõne osa kordamiseks.

Oluline punkt

Tuleb kindlaks määrata alusjuhtum

Lõpetamise tingimus tuleb kindlaks määrata

Toimivus

Suhteliselt aeglane

Võrreldes kiire

Mälu kasutamine

Võrreldes rohkem

Võrreldes vähem

Kood

Väiksemad

Pikem

Lõpmatu kordus

Lõpmatu rekursioon suudab süsteemi krahhida

Lõpmatu loopimine tarbib CPU tsükleid korduvalt

Struktuur

Valik

Kordamine

Kohalikud muutujad

Pole nõutud

Nõutud

Soovitatav

Seotud Artiklid

  • populaarsed võrdlused: Erinevus AMD ja Inteli emaplaatide vahel

    Erinevus AMD ja Inteli emaplaatide vahel

    Peamine erinevus: peamine erinevus AMD ja Inteli emaplaatide vahel on see, et nad aktsepteerivad ainult sama tüüpi protsessorit. Seega töötab AMD emaplaat ainult koos AMD protsessoriga, samuti töötab Intel emaplaat ainult Inteli protsessoriga, mitte vastupidi. Emaplaat on mis tahes arvuti oluline osa. See
  • populaarsed võrdlused: Erinevus majanduskasvu ja arengu vahel

    Erinevus majanduskasvu ja arengu vahel

    Peamine erinevus: kasvu kasutatakse tavaliselt suuruse või füüsilise arengu alusel. Üldine areng on üldisem ja ümbritsev termin kui kasv. Areng hõlmab majanduskasvu, kuid hõlmab ka teisi täiustamise või arengu aspekte. Kasvu ja arengut kasutatakse lauses üheskoos, olenemata sellest, kas tegemist on inimesega, äri või isegi majandusega. Kuid mida t
  • populaarsed võrdlused: Erinevus BPO ja KPO vahel

    Erinevus BPO ja KPO vahel

    Peamised erinevused: BPO, Business Processing Outsourcing'i lühend, tähendab äritegevuse protsessi rakendamist, kasutades allhanke kanalit. Teisest küljest tähendab KPO, mis sisaldab lühendit Knowledge Process Outsourcing, allhanget protsessi, mis nõuab teadmiste töötlemist ühes või teises vormis. BPO ja KP
  • populaarsed võrdlused: Gei ja transseksuaalide vaheline erinevus

    Gei ja transseksuaalide vaheline erinevus

    Peamised erinevused: Gay on mõiste, mida tavaliselt kasutatakse homoseksuaalidele. Transseksuaal on riik, kus inimese sooidentiteet ei vasta tema füüsilisele soost. Gay on termin, mida kasutatakse homoseksuaalide asemel. Seda kasutatakse inimestele, kes on seksuaalselt meelestatud teiste sugulaste juurde. S
  • populaarsed võrdlused: Erinevus surnult sündinud sünnide ja raseduse katkemise vahel

    Erinevus surnult sündinud sünnide ja raseduse katkemise vahel

    Peamised erinevused: raseduse katkemine on termin, mida kasutatakse raseduse ajal, mis lõpeb staadiumis, kus lootele ei ole võimalik iseenesest ellu jääda või kui rasedus lõpeb raseduse esimese 20 nädala jooksul. Sünnitus on siis, kui emakas sureb emakas, kõige sagedamini pärast 20 nädalat. Terminid
  • populaarsed võrdlused: Erinevus Cartoon ja Anime vahel

    Erinevus Cartoon ja Anime vahel

    Põhiline erinevus: koomiks on lihtsalt kahemõõtmeline visuaalne kunst. Algselt kasutati seda terminit Lähis-Idas, et viidata kunstiteose ettevalmistavale joonisele, nagu maal, fresko, gobelään või vitraažiaken. Anime on jaapani animatsioon lihtsas mõttes. Need võivad olla käsitsi joonistatud või arvutiga animeeritud. Algselt ol
  • populaarsed võrdlused: Koolieelse ja lasteaia vaheline erinevus

    Koolieelse ja lasteaia vaheline erinevus

    Oluline erinevus: eelkool viitab õppeasutusele, mis on mõeldud lastele lapsevanemate ja formaalse koolihariduse vahel. Lasteaed on kolme- kuni viieaastaste laste lasteaed. Mõnes kohas tähistab see esimest kooliaastat ja keskendub viieaastastele lastele. Terminite kasutamine on riigiti erinev. Eelkool tähistab mis tahes tüüpi õppeasutust, mis valmistab lapse ette formaalse haridussüsteemi loomiseks. Eelkool
  • populaarsed võrdlused: Erinevus kudumise ja kudumise vahel

    Erinevus kudumise ja kudumise vahel

    Peamised erinevused: Kudumine on meetod, mida kasutatakse kanga tootmiseks, keerates lõnga lapiga. Kootud kangas koosneb järjestikustest ridade ridadest, mida nimetatakse õmblusteks. Iga õmblema tekib uus silmus läbi ja olemasolev silmus. Kudumisel valmistatakse kangaid kahe erineva lõngade või niidide horisontaalsel või vertikaalsel küljel. Niidid,
  • populaarsed võrdlused: Erinevus akne ja lööbe vahel

    Erinevus akne ja lööbe vahel

    Peamised erinevused: Akne on naha haigus, mida iseloomustavad pimples, blackheads ja whiteheads. Löövet võib viidata naha ajutisele purse või värvimuutusele. See on üldiselt põletik või paistes. Akne ja lööve on mõlemad seotud nahaprobleemidega ja võivad olla tõeliselt ohtlikud, kui need osutuvad raskeks. Paljud inim

Toimetaja Valik

Erinevus Thorns, Spines ja Prickles

Peamised erinevused: Taimede morfoloogias on okkad, selgroog ja piikid kõik sarnased struktuurid, mida tähistavad nende teravad ja jäigad otsad. Okkad saadakse võrsedelt. Spinad saadakse lehtedest ja piikid on saadud epidermisest. Kõik need on seotud taimede taimestiku vastaste kaitsemehhanismidega. Üld