Jaký je základní rozdíl mezi smyčkou a rekurzí v C?


Odpověď 1:

Řada statememů se říká, že jsou ve smyčce, pokud jsou opakovaně prováděny. Rekurze jsou sadou výroků, které se opakovaně nazývají. V perspektivě počítače je pokaždé, když je provedeno rekurzivní volání, to jako znovu porodit stejné funkci.

Smyčky a rekurze jsou v mnoha ohledech rovnocenné. Smyčky můžete vždy převádět na rekurze a naopak.

Rekurzivní funkce zabírají více zásobníku, protože při každém rekurzivním volání se vytvoří nová instance funkce. Doporučujeme používat rekurze pouze v případě, že máte pocit, že po každém opakovaném volání bude problém jednodušší a lze jej vyřešit opakováním procesu. Například, věž Hanoj ​​problém.

Smyčky jsou efektivnější, protože nevyvíjejí zásobník.


Odpověď 2:

V zásadě smyčka v C označuje množinu příkazů prováděných opakovaně, také nazývaných iterace.

eg- for je smyčka, zatímco je smyčka do-while je smyčka

vzhledem k tomu, že rekurze je jednoduše technikou funkce, která se rodí sama sobě (nebo se nazývá znovu a znovu, dokud nejsou splněny některé podmínky)

Níže je kód pro tisk čísel od 1 do 100 s iterací a rekurzí.

  1. rekurze
#include 
pomocí oboru názvů std;

void printn (int i)
{
pokud (i! = 1)
{
printn (i - 1);
cout << i << endl;
}
else cout << i << endl;
 }

int main ()
{
printn (100); // to je s rekurzí
návrat 0;
}

2. pomocí smyčky (pro smyčku)

#include 
pomocí oboru názvů std;

int main ()
{
pro (int i = 0; i <= 100; i ++)
cout << i << endl;

návrat 0;
}

Odpověď 3:

ITERACE RECERZE VERSUS

Rekurze vs. Iterace

Rekurze je termín daný mechanismu definování souboru nebo postupu z hlediska jeho samotného

Blok příkazu se provádí opakovaně pomocí smyček

Na některých místech použití rekurze generuje extra režii, proto je lepší přeskočit, když je k dispozici snadné řešení pro iteraci.

Všechny problémy nelze vyřešit iterací.

Pro zastavení provádění funkce je v těle funkce vyžadován podmíněný příkaz

Samotný příkaz pro iteraci obsahuje příkaz pro zastavení iterace. Při každém provedení je podmínka zkontrolována.

Rekurze je drahá z hlediska rychlosti a paměti

Iterace nevytváří žádnou režii. Všechny programovací jazyky podporují iteraci

Další aplikaci pro Android ke stažení:

Programovací jazyk C - Vše v jednom - Aplikace na Google Play


Odpověď 4:

Přemýšlejte o problému velikosti N,

Při rekurzi rozbijete problém na menší velikost, řekněme N / 2 a další N / 2. Každý z dílčích problémů N / 2 je dále rozdělen na N / 4 a N / 4. Stále rozdělujete problém, dokud už není možné další dělení.

To funguje, protože pokud například rozdělíte problém velikosti N na 4 dílčí problém ve stejné velikosti, pak

N / 4 + N / 4 + N / 4 + N / 4 = 4N / 4 = N.

Nyní vše, co potřebujete, je vyřešit každý z těchto menších problémů a protože již víme, že kombinace všech 4 částí nám poskytne řešení hlavního problému (řešení problému velikosti N).

Pro vyřešení menšího problému voláme rekurzivně určitou funkci.

Smyčka se používá k rozhodnutí, kolikrát bychom měli opakovat výpočet při dvou

podmínky,

  1. počáteční podmínka - takto končí podmínka ukončení počáteční smyčky - zde končí smyčka.

mezi těmito dvěma podmínkami provádí smyčka opakovaně výpočetní logiku.

Stručně řečeno, smyčka musí uspokojit trojici Hoare,

{P} C {Q}

P - Předpoklad

C - příkaz

Q - Postcondition

O trojici Hoare si můžete přečíst na wiki - logika Hoare - Wikipedia


Odpověď 5:

Přemýšlejte o problému velikosti N,

Při rekurzi rozbijete problém na menší velikost, řekněme N / 2 a další N / 2. Každý z dílčích problémů N / 2 je dále rozdělen na N / 4 a N / 4. Stále rozdělujete problém, dokud už není možné další dělení.

To funguje, protože pokud například rozdělíte problém velikosti N na 4 dílčí problém ve stejné velikosti, pak

N / 4 + N / 4 + N / 4 + N / 4 = 4N / 4 = N.

Nyní vše, co potřebujete, je vyřešit každý z těchto menších problémů a protože již víme, že kombinace všech 4 částí nám poskytne řešení hlavního problému (řešení problému velikosti N).

Pro vyřešení menšího problému voláme rekurzivně určitou funkci.

Smyčka se používá k rozhodnutí, kolikrát bychom měli opakovat výpočet při dvou

podmínky,

  1. počáteční podmínka - takto končí podmínka ukončení počáteční smyčky - zde končí smyčka.

mezi těmito dvěma podmínkami provádí smyčka opakovaně výpočetní logiku.

Stručně řečeno, smyčka musí uspokojit trojici Hoare,

{P} C {Q}

P - Předpoklad

C - příkaz

Q - Postcondition

O trojici Hoare si můžete přečíst na wiki - logika Hoare - Wikipedia


Odpověď 6:

Přemýšlejte o problému velikosti N,

Při rekurzi rozbijete problém na menší velikost, řekněme N / 2 a další N / 2. Každý z dílčích problémů N / 2 je dále rozdělen na N / 4 a N / 4. Stále rozdělujete problém, dokud už není možné další dělení.

To funguje, protože pokud například rozdělíte problém velikosti N na 4 dílčí problém ve stejné velikosti, pak

N / 4 + N / 4 + N / 4 + N / 4 = 4N / 4 = N.

Nyní vše, co potřebujete, je vyřešit každý z těchto menších problémů a protože již víme, že kombinace všech 4 částí nám poskytne řešení hlavního problému (řešení problému velikosti N).

Pro vyřešení menšího problému voláme rekurzivně určitou funkci.

Smyčka se používá k rozhodnutí, kolikrát bychom měli opakovat výpočet při dvou

podmínky,

  1. počáteční podmínka - takto končí podmínka ukončení počáteční smyčky - zde končí smyčka.

mezi těmito dvěma podmínkami provádí smyčka opakovaně výpočetní logiku.

Stručně řečeno, smyčka musí uspokojit trojici Hoare,

{P} C {Q}

P - Předpoklad

C - příkaz

Q - Postcondition

O trojici Hoare si můžete přečíst na wiki - logika Hoare - Wikipedia