Qhov txawv ntawm Kev Rov Ua Dua thiab Kev Rov Ua Dua

Cov txheej txheem:

Qhov txawv ntawm Kev Rov Ua Dua thiab Kev Rov Ua Dua
Qhov txawv ntawm Kev Rov Ua Dua thiab Kev Rov Ua Dua

Video: Qhov txawv ntawm Kev Rov Ua Dua thiab Kev Rov Ua Dua

Video: Qhov txawv ntawm Kev Rov Ua Dua thiab Kev Rov Ua Dua
Video: Koj Hais Dab Tsi?/Suabci Kwm & Ab Meej Ham/Official MV 2023 2024, Kaum ib hlis
Anonim

Qhov Tseem Ceeb Qhov Sib Txawv - Rov Rov Los vs Iteration

Recursion thiab Iteration tuaj yeem siv los daws cov teeb meem kev ua haujlwm. Txoj hauv kev los daws qhov teeb meem siv recursion lossis iteration nyob ntawm txoj hauv kev los daws qhov teeb meem. Qhov sib txawv tseem ceeb ntawm recursion thiab iteration yog tias recursion yog ib lub tswv yim los hu rau ib qho kev ua haujlwm nyob rau hauv tib txoj haujlwm thaum iteration yog ua kom tiav cov lus qhia ntau zaus kom txog rau thaum cov xwm txheej muaj tseeb. Recursion thiab Iteration yog cov tswv yim tseem ceeb rau kev tsim cov algorithms thiab tsim cov ntawv thov software.

Dab tsi yog qhov rov tshwm sim?

Thaum muaj nuj nqi hu nws tus kheej hauv kev ua haujlwm, nws hu ua Recursion. Muaj ob hom kev rov ua dua tshiab. Lawv yog finite recursion thiab infinite recursion. Finite recursion muaj qhov xwm txheej xaus. Infinite recursion tsis muaj qhov xaus.

Recursion tuaj yeem piav qhia siv qhov program los suav cov factorials.

n!=n (n-1)!, if n>0

n!=1, if n=0;

Saib cov lej hauv qab no los suav cov lej ntawm 3(3!=321).

intmain () {

tus nqi=factorial (3);

printf(“Factorial is %d\n”, tus nqi);

return 0;

}

intfactorial (intn) {

if(n==0) {

rov 1;

}

lse {

return n factorial(n-1);

}

}

Thaum hu rau factorial (3), qhov haujlwm ntawd yuav hu rau factorial (2). Thaum hu rau factorial (2), qhov haujlwm ntawd yuav hu ua factorial (1). Ces factorial (1) yuav hu ua factorial (0). factorial (0) yuav rov qab 1. Nyob rau hauv cov kev pab cuam saum toj no, n==0 mob nyob rau hauv lub "yog block" yog lub hauv paus mob. Raws li ib yam li ntawd, lub luag haujlwm factorial hu ua dua thiab dua.

Recursive functions muaj feem xyuam nrog pawg. Hauv C, cov haujlwm tseem ceeb tuaj yeem muaj ntau yam haujlwm. Yog li, lub ntsiab () yog lub luag haujlwm hu, thiab cov haujlwm uas raug hu los ntawm lub ntsiab program yog hu ua haujlwm. Thaum lub luag haujlwm hu ua, kev tswj tau muab rau lub luag haujlwm hu ua. Tom qab kev ua haujlwm tiav tiav, kev tswj hwm tau rov qab mus rau lub ntsiab. Ces qhov kev pab cuam tseem ceeb txuas ntxiv mus. Yog li, nws tsim cov ntaub ntawv qhib lossis pawg thav duab kom ua tiav.

Qhov txawv ntawm Recursion thiab Iteration
Qhov txawv ntawm Recursion thiab Iteration
Qhov txawv ntawm Recursion thiab Iteration
Qhov txawv ntawm Recursion thiab Iteration

Daim duab 01: Rov qab los

Nyob rau hauv qhov kev pab cuam saum toj no, thaum hu xov tooj rau factorial (3) los ntawm lub ntsiab, nws tsim cov ntaub ntawv qhib rau hauv pawg hu. Tom qab ntawd, factorial (2) pawg ncej yog tsim nyob rau sab saum toj ntawm pawg thiab lwm yam. Cov ntaub ntawv qhib kom khaws cov ntaub ntawv hais txog qhov sib txawv hauv zos thiab lwm yam. Txhua zaus hu ua haujlwm, cov txheej txheem tshiab hauv zos tau tsim nyob rau sab saum toj ntawm pawg. Cov thav duab no tuaj yeem ua kom nrawm nrawm. Ib yam li hauv recursion, muaj nuj nqi hu nws tus kheej. Lub sij hawm complexity rau ib tug recursive muaj nuj nqi yog pom los ntawm tus naj npawb ntawm lub sij hawm, lub function yog hu ua. Lub sij hawm nyuaj rau ib qho kev hu xov tooj yog O (1). Rau n tus lej ntawm kev hu rov qab, lub sijhawm nyuaj yog O(n).

Iteration yog dab tsi?

Iteration yog qhov thaiv ntawm cov lus qhia uas rov ua dua thiab rov ua dua kom txog thaum qhov xwm txheej tau muaj tseeb. Iteration tuaj yeem ua tiav siv "rau voj", "ua-thaum lub voj" lossis "thaum lub voj". "rau voj" syntax yog raws li nram no.

rau (pib pib; mob; hloov kho) {

// nqe lus;

}

Qhov tseem ceeb sib txawv ntawm Recursion thiab Iteration
Qhov tseem ceeb sib txawv ntawm Recursion thiab Iteration
Qhov tseem ceeb sib txawv ntawm Recursion thiab Iteration
Qhov tseem ceeb sib txawv ntawm Recursion thiab Iteration

Daim duab 02: "rau lub voj voj voog"

Initialization kauj ruam ua ntej. Cov kauj ruam no yog tshaj tawm thiab pib lub voj tswj kev hloov pauv. Yog tias qhov xwm txheej muaj tseeb, cov nqe lus hauv cov curly braces raug tua. Cov nqe lus no raug coj mus rau qhov xwm txheej muaj tseeb. Yog tias qhov xwm txheej tsis tseeb, kev tswj hwm mus rau nqe lus tom ntej tom qab "rau voj". Tom qab ua tiav cov nqe lus hauv lub voj, tus tswj mus hloov kho ntu. Nws yog los hloov kho lub voj tswj qhov sib txawv. Tom qab ntawd qhov xwm txheej raug tshuaj xyuas dua. Yog tias qhov xwm txheej muaj tseeb, cov nqe lus hauv cov curly braces yuav ua tiav. Qhov no txoj kev "rau lub voj" iterates.

Nyob hauv "thaum lub voj", cov lus hauv lub voj ua haujlwm kom txog rau thaum qhov xwm txheej muaj tseeb.

thaum (tus mob){

// nqe lus

}

Nyob rau hauv "ua-thaum" voj, qhov xwm txheej raug tshuaj xyuas ntawm qhov kawg ntawm lub voj. Yog li, lub voj ua haujlwm tsawg kawg ib zaug.

ua{

// nqe lus

} while(condition)

Txoj kev nrhiav cov factorial ntawm 3 (3!) siv iteration ("rau voj") yog raws li nram no.

int main(){

intn=3, factorial=1;

inti;

for(i=1; i<=n; i++){

factorial=factoriali;

}

printf(“Factorial is %d\n”, factorial);

return 0;

}

Dab tsi yog qhov zoo sib xws ntawm Kev Rov Rov Los thiab Rov Ua Dua?

  • Ob leeg yog cov tswv yim los daws qhov teeb meem.
  • Txoj haujlwm tuaj yeem daws tau los ntawm kev rov ua dua lossis rov ua dua.

Dab tsi yog qhov txawv ntawm Kev Rov Rov Los thiab Kev Rov Ua Dua?

Recursion vs Iteration

Recursion yog ib txoj hauv kev hu ua haujlwm hauv tib txoj haujlwm. Iteration yog ib qho thaiv ntawm cov lus qhia uas rov ua dua kom txog thaum cov xwm txheej tau muaj tseeb.
Space Complexity
Qhov chaw nyuaj ntawm cov kev pabcuam rov ua dua yog siab dua li kev rov ua dua. Space complexity tsawg dua nyob rau hauv iterations.
Recursion execution qeeb. Nquag, iteration sai dua recursion.
Yog tias tsis muaj qhov xwm txheej txiav tawm, tuaj yeem muaj qhov rov ua tsis tiav. Yog qhov xwm txheej yeej tsis muaj tseeb, nws yuav yog qhov rov ua tsis tiav.
Stack
Nyob rau hauv recursion, pawg yog siv los khaws cov hloov pauv hauv zos thaum lub luag haujlwm hu ua. Nyob rau hauv ib qho iteration, pawg tsis siv.
Code Readability
Ib qho program recursive nyeem tau ntau dua. Cov kev pab cuam rov nyeem dua yog qhov nyuaj dua nyeem dua li qhov program rov ua dua.

Summary – Recursion vs Iteration

Kab lus no tau tham txog qhov sib txawv ntawm kev rov ua dua thiab rov ua dua. Ob leeg tuaj yeem siv los daws cov teeb meem programming. Qhov txawv ntawm recursion thiab iteration yog hais tias recursion yog ib tug mechanism los hu rau ib tug muaj nuj nqi nyob rau hauv tib lub luag hauj lwm thiab iteration nws mus coj ib tug txheej ntawm cov lus qhia ntau zaus kom txog rau thaum tus mob no muaj tseeb. Yog tias qhov teeb meem tuaj yeem daws tau hauv daim ntawv recursive, nws kuj tuaj yeem daws tau los ntawm kev siv iterations.

Download the PDF Version of Recursion vs Iteration

Koj tuaj yeem rub tawm PDF version ntawm kab lus no thiab siv nws rau offline hom phiaj raws li daim ntawv ceeb toom. Thov rub tawm PDF version ntawm no Qhov txawv Ntawm Kev Rov Ua Dua thiab Kev Ua Haujlwm

Pom zoo: