Quina és la diferència bàsica entre bucle i recursivitat en C?


Resposta 1:

Es diu que un conjunt de statemes es troben en un bucle si s'executen repetidament. Les recursions són un conjunt de declaracions que es diuen a si mateixes repetidament. En la perspectiva de l’ordinador, cada cop que es fa una crida recursiva, és com tornar a donar a llum la mateixa funció.

Enllaços i recorreguts són en molts aspectes equivalents. Sempre podeu traduir bucles a recursions i viceversa.

Les funcions recursives ocupen més espai de pila perquè cada vegada que es fa una trucada recursiva es crea una nova instància de la funció. És recomanable utilitzar recursions només si creus que després de cada trucada recurrent, el problema de la mà es farà més senzill i es pot solucionar repetint el procés. Per exemple, el problema de la torre de Hanoi.

Els bucles són més eficients perquè no creixen la pila.


Resposta 2:

Bàsicament el bucle en C fa referència a un conjunt d’instruccions que s’executen repetidament, també anomenades iteració.

p.ex. per a és un bucle, mentre que és un bucle do-while és un bucle

mentre que la recursió és simplement una tècnica d'una funció que dóna llum a si mateixa (o anomenar-se una i altra vegada fins que es compleix alguna condició)

a continuació hi ha un codi per imprimir els números de l’1 al 100 amb iteració i recursivitat.

  1. recursió
#incloure 
ús de l’espai de noms std;

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

int principal ()
{
printn (100); // això és amb recursivitat
retornar 0;
}

2. utilitzant llaç (per bucle)

#incloure 
ús de l’espai de noms std;

int principal ()
{
per a (int i = 0; i <= 100; i ++)
cout << i << endl;

retornar 0;
}

Resposta 3:

ITERACIONS DE RECURSIÓ VERSUS

Recursió i iteració

La recurs és el terme que es dóna al mecanisme de definir un conjunt o procediment en termes de si mateix

El bloc de declaracions s'executa repetidament mitjançant bucles

En alguns llocs, l'ús de la recursió genera despeses addicionals, per tant, és millor saltar-se quan hi hagi una solució fàcil disponible

Tots els problemes no es poden solucionar amb iteració.

En el cos de la funció es necessita una declaració condicional per aturar l'execució de la funció

La declaració de control de la iteració conté la declaració per aturar la iteració. En cada execució es comprova la condició.

La recurs és costosa en termes de velocitat i memòria

La iteració no crea cap despesa general. Tot el llenguatge de programació suporta la iteració

Per obtenir més descàrrega de l'aplicació per a Android:

C Llenguatge de programació: Tot en un: aplicacions a Google Play


Resposta 4:

Penseu en un problema de la mida N,

A la recursió, es trenca el problema amb una mida més petita, per exemple N / 2 i un altre N / 2. Cadascun dels problemes secundaris N / 2 es divideix encara en N / 4 i N / 4. Es continua dividint el problema fins que no es pugui fer més subdivisió.

Això funciona perquè, per exemple, dividiu el problema de la mida N en 4 sub problema amb la mateixa mida, llavors

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

Ara només cal resoldre cadascun d’aquests problemes més petits i ja que ja sabem que combinar la part 4 ens donarà la solució al problema principal (solució del problema de la mida N).

Per solucionar un problema més petit, cridem recursivament a una determinada funció.

El bucle s'utilitza per decidir quantes vegades hauríem de repetir un càlcul donat dues

condicions,

  1. una condició inicial, així és com acaba un bucle d’inici de la condició: aquí és quan s’acaba un bucle.

entre aquestes dues condicions, el bucle executa repetidament la lògica de càlcul.

En resum, el bucle ha de satisfer el triple de Hoare,

{P} C {Q}

P - Condició prèvia

C - comandament

P - Postcondició

Podeu llegir sobre Hoare triple a wiki - Hoare logic - Viquipèdia


Resposta 5:

Penseu en un problema de la mida N,

A la recursió, es trenca el problema amb una mida més petita, per exemple N / 2 i un altre N / 2. Cadascun dels problemes secundaris N / 2 es divideix encara en N / 4 i N / 4. Es continua dividint el problema fins que no es pugui fer més subdivisió.

Això funciona perquè, per exemple, dividiu el problema de la mida N en 4 sub problema amb la mateixa mida, llavors

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

Ara només cal resoldre cadascun d’aquests problemes més petits i ja que ja sabem que combinar la part 4 ens donarà la solució al problema principal (solució del problema de la mida N).

Per solucionar un problema més petit, cridem recursivament a una determinada funció.

El bucle s'utilitza per decidir quantes vegades hauríem de repetir un càlcul donat dues

condicions,

  1. una condició inicial, així és com acaba un bucle d’inici de la condició: aquí és quan s’acaba un bucle.

entre aquestes dues condicions, el bucle executa repetidament la lògica de càlcul.

En resum, el bucle ha de satisfer el triple de Hoare,

{P} C {Q}

P - Condició prèvia

C - comandament

P - Postcondició

Podeu llegir sobre Hoare triple a wiki - Hoare logic - Viquipèdia


Resposta 6:

Penseu en un problema de la mida N,

A la recursió, es trenca el problema amb una mida més petita, per exemple N / 2 i un altre N / 2. Cadascun dels problemes secundaris N / 2 es divideix encara en N / 4 i N / 4. Es continua dividint el problema fins que no es pugui fer més subdivisió.

Això funciona perquè, per exemple, dividiu el problema de la mida N en 4 sub problema amb la mateixa mida, llavors

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

Ara només cal resoldre cadascun d’aquests problemes més petits i ja que ja sabem que combinar la part 4 ens donarà la solució al problema principal (solució del problema de la mida N).

Per solucionar un problema més petit, cridem recursivament a una determinada funció.

El bucle s'utilitza per decidir quantes vegades hauríem de repetir un càlcul donat dues

condicions,

  1. una condició inicial, així és com acaba un bucle d’inici de la condició: aquí és quan s’acaba un bucle.

entre aquestes dues condicions, el bucle executa repetidament la lògica de càlcul.

En resum, el bucle ha de satisfer el triple de Hoare,

{P} C {Q}

P - Condició prèvia

C - comandament

P - Postcondició

Podeu llegir sobre Hoare triple a wiki - Hoare logic - Viquipèdia