Usi per una funzione ricorsiva

July 21

Ricorsione può essere una tecnica utile per i programmatori. funzioni ricorsive, noto anche come "metodi" in linguaggi come Java, sono funzioni che si definiscono. Ci sono alcune situazioni in cui le funzioni ricorsive particolarmente adatti. Tuttavia, può essere difficile da implementare correttamente una funzione ricorsiva, in modo che dovrebbe essere utilizzato solo se del caso. funzioni ricorsive sono spesso utili quando si tratta di strutture di dati e attività matematiche.

Ordinamento

Quando i dati dei programmi modello, internamente o importati da una sorgente come un database, che spesso hanno bisogno di risolvere. Alcune strutture di dati non sono ordinati, il che significa che gli elementi non sono disposti in ordine consecutivo. Per esempio, un programma potrebbe contenere un array con stringhe di testo al suo interno. Per ordinare l'array in modo che le stringhe di testo sono disposte in ordine crescente in ordine alfabetico, il programma può essere necessario utilizzare un algoritmo. Merge sort è un esempio di un metodo ricorsivo per questo processo. Unire opere di ordinamento dividendo continuamente la matrice in due, l'ordinamento per tempo prima di fondersi di nuovo in uno.

Ricerca

Quando i dati memorizzare programmi in strutture di dati, hanno spesso la necessità di individuare elementi particolari che utilizzano algoritmi di ricerca, che possono beneficiare di ricorsione. Ad esempio, se una matrice è la memorizzazione dei valori in ordine alfabetico, il programma può utilizzare la ricorsione per capire qual è la posizione di un certo elemento è a. La ricerca binaria coinvolge il programma verifica continuamente una metà elemento attraverso l'array. Se l'elemento corrisponde a quello del programma sta cercando, può arrestare. Se non è l'elemento in questione, l'algoritmo può verificare se sia maggiore o minore della elemento di ricerca. Se è maggiore, l'algoritmo può eliminare la metà superiore della struttura oltre l'elemento corrente, come elemento di ricerca deve trovarsi nella metà inferiore. Questo processo continua fino a quando si trova l'elemento.

Strutture di dati

Nel decidere su algoritmi, i programmatori dovrebbero chiedere se una funzione iterativa che non è ricorsivo potrebbe risolvere il compito nonché uno ricorsivo. Ad esempio, in alcune strutture di dati, un programma necessario per la ricerca in in modo lineare fino individua un tema. In questo caso non c'è alternativa, ma per scorrere la struttura. algoritmi ricorsivi semplificano il compito con ogni iterazione, il controllo per vedere se il punto finale è arrivato, quindi chiamare di nuovo la funzione se non è. Per dimostrare le somiglianze tra ricorsione e iterazione, il seguente metodo di esempio Java mostra un metodo schema ricorsivo:
processNumber public void (int myNum) {
if (myNum> 100) return;
altro processNumber (myNum * 5);
}

Un'implementazione iterativa alternativa di questo potrebbe essere il seguente:
int Anum = 3;
mentre (Anum <100) {anum * = 5; }

In questo caso la versione iterativa è semplice.

operazioni matematiche

Alcune attività di elaborazione matematiche sono particolarmente adatti per funzioni ricorsive. sequenze di Fibonacci dimostrano l'elaborazione ricorsiva. Ciascun numero in una sequenza Fibonacci è la somma dei due precedenti. Il seguente codice di esempio Java dimostra una funzione per trovare un numero di Fibonacci:
public int getFibonacci (int fnum) {
if (fnum <= 1) tornare fnum;
altro ritorno getFibonacci (fnum-1) + getFibonacci (fnum-2);

}

Il metodo restituisce il numero della sequenza Fibonacci nella posizione indicata da un parametro intero quando il codice chiama, come segue:
getFibonacci (8);

Questo sarebbe tornato l'ottavo numero. (Vedi riferimenti 3, 4, 5)