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

  • vahe: Erinevus Microsoft Surface RT ja Lenovo IdeaPad Yoga vahel 13

    Erinevus Microsoft Surface RT ja Lenovo IdeaPad Yoga vahel 13

    Peamised erinevused: Microsoft Surface RT on tablett, millel on 10, 6-tolline TFT HD mahtuvuslik puutetundlik ekraan ligikaudu 148 ppi tihedusega. Ekraan annab õige 16: 9 kuvasuhte. Kuid operatsioonisüsteem ei ühildu vanade Windows PC programmidega. Lenovo IdeaPad Yoga 13-s on 13, 3-tolline HD + IPS mahtuvuslik multitouchi ekraan, mis kaalub 1, 54 kg (3, 4 naela). S
  • vahe: Tulumaksu mahaarvamise, tagasimakse ja vabastuse erinevus

    Tulumaksu mahaarvamise, tagasimakse ja vabastuse erinevus

    Peamised erinevused: maksuvabastus on mis tahes programm või stiimul, mis aitab maksumäära mingil moel vähendada. See maksusoodustus võib olla maksusoodustuse või maksusoodustuse vormis. Maksu mahaarvamine on põhimõtteliselt maksude mahaarvamine. See võimaldab ühe isiku tulust maha arvata. Maksusoodustus, mida tuntakse ka kui maksutagastust, on isiku poolt juba tasutud maksude tagasimaksmine. Üks üles
  • vahe: Erinevus kaera ja nisu vahel

    Erinevus kaera ja nisu vahel

    Peamine erinevus: Kaer on saanud paljude tervislike omaduste tõttu populaarseks hommikusöögiks. Tervisliku eluviisi poole liikudes on peaaegu kõik kuulnud kaerast või lisanud kaera oma dieeti. Avena sativa või kaer on teraviljasaagi liik, mida kasvatatakse selle seemne jaoks, tuntud ka sama nimega. Nisu
  • vahe: Erinevus Roti ja Chapati vahel

    Erinevus Roti ja Chapati vahel

    Peamised erinevused: Termineid Roti ja Chapati kasutatakse sageli India toiduvalmistamisel. Üldiselt on roti üks india flatbread. On palju erinevaid rotise, millest üks on chapati, mis on tüüpi roti, mis on valmistatud täistera-jahu ja keedetud tava peal. Mõisted Roti ja Chapati on tihti regulaarselt India toiduvalmistamisel. Tegel
  • vahe: Erinevus XOLO Q800 ja Micromax A116 Canvas HD vahel

    Erinevus XOLO Q800 ja Micromax A116 Canvas HD vahel

    Peamine erinevus: Xolo Q800 on Quad-core 1, 2 GHz nutitelefon, mida toetab MTK MT6589 ja 1 GB RAM. Telefon töötab Android 4.1 (Jelly Bean). Sellel on 4, 5-tolline ekraan, mille eraldusvõime on 540 x 960 pikslit. Micromax A116 Canvas HD on tõeliselt populaarse Micromax A110 Canvas 2 järeltulija ja see on parem kui tema eelkäija. Sell
  • vahe: Erinevus konsultandi ja täistööajaga töötaja vahel

    Erinevus konsultandi ja täistööajaga töötaja vahel

    Peamised erinevused: Täistööajaga töötaja on töötaja, kes töötab seal täistööajaga. Neil on kõik tööhõive eelised, sealhulgas palgafond, puhkus, hüvitised, ületunnitöö jne. Konsultant on spetsialist, kes annab oma valdkonnas eksperdiabi. Seega palgatakse neid sageli konkreetse ülesande või projekti jaoks, kus nad saavad oma teadmisi rakendada või anda nõu. Konsultant ja täistööa
  • vahe: Erinevus Nexus 4 ja Galaxy Note II vahel

    Erinevus Nexus 4 ja Galaxy Note II vahel

    Peamine erinevus: Nexus 4 on Google'i neljas Nexuse kaubamärgiga Android nutitelefon. See toodeti koostöös LG Electronicsiga. Telefon töötab Android 4.2 (Jelly Bean) operatsioonisüsteemiga, mis käivitati telefoniga. Samsung Galaxy Märkus II on Samsungi poolt toodetud nutitelefon, millel on Android 4.1. Märk
  • vahe: Punase ja rohelise läätse erinevus

    Punase ja rohelise läätse erinevus

    Peamine erinevus: läätsed on kaunviljade perekonna osa. Kaks kõige levinumat ja populaarsemat läätse on punased läätsed ja rohelised läätsed. Punased läätsed on tavaliselt saadaval. Võrreldes teiste läätsedega kipuvad nad küpsema kiiremini, mitte rohkem kui 30 minuti jooksul. Neil on magus ja pähklik maitse ja nad kipuvad pärast küpsetamist sageli õrnalt õrnalt oma kuju säilitama. Rohelistel läätsede
  • vahe: Erinevus Nokia Lumia 620 ja Sony Xperia T vahel

    Erinevus Nokia Lumia 620 ja Sony Xperia T vahel

    Põhiline erinevus: Üks uusimaid nutitelefone kaubamärgi all on Nokia Lumia 620. Nokia Lumia 620 on suunatud algtaseme ostjatele, kes soovivad proovida Windows Phone 8, kuid ei saa endale lubada seda liiga palju. Sony Xperia T on Sony poolt välja antud mudel, mis ilmus 2012. aasta augustis. See oli üks esimesi mudeleid, mille Sony on pärast Ericssoniga purustamist välja andnud. See o

Toimetaja Valik

Erinevus Alcatel One Touch Idol Ultra ja Nokia Lumia 820 vahel

Peamine erinevus: Alcatel One Touch Idol Ultra funktsioonis on 4, 65-tolline HD AMOLED mahtuvuslik puuteekraan, mille eraldusvõime on 720 x 1280 pikslit. Telefoni toiteallikaks on Dual-core 1, 2 GHz protsessor, MediaTek MTK 6577 ja 1 GB RAM. Telefoni laius on 6, 45 mm, mis on viinud selle, et ettevõte on turul kõige õhem nutitelefon. Ük