Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Computer Programming Languages >> .

Usi per una funzione ricorsiva

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

quando i programmi dati del modello, internamente o importati da una fonte ad esempio un database , che spesso hanno bisogno di risolvere . Alcune strutture di dati non sono ordinati , nel senso che gli elementi non sono disposti in ordine consecutivo . Ad esempio, un programma potrebbe contenere un array con stringhe di testo all'interno di esso . Per ordinare l'array in modo che le stringhe di testo sono disposte in ordine crescente in ordine alfabetico, il programma potrebbe essere necessario utilizzare un algoritmo. Merge sort è un esempio di un metodo iterativo per questo processo . Unisci lavori di ordinamento dividendo continuamente l'array in due, ciascuna metà ordinamento prima di fondersi di nuovo in uno.
Ricerca

Quando i programmi memorizzano i dati in strutture di dati , spesso necessario individuare gli elementi specifici che utilizzano algoritmi di ricerca , che possono beneficiare di ricorsione . Per esempio, se una matrice è la memorizzazione dei valori in ordine alfabetico , il programma può utilizzare la ricorsione per capire quale sia la posizione di un certo elemento è a . Ricerca binaria consiste il programma di controllo in continuo un elemento a metà strada attraverso l'array . Se l'elemento corrispondente a quello del programma sta cercando, si può fermare . Se non è l' elemento in questione , l'algoritmo può verificare se sia maggiore o minore del elemento di ricerca . Se è maggiore , l'algoritmo può eliminare la metà superiore della struttura di là dell'elemento corrente , come l'elemento di ricerca deve essere nella metà inferiore . Questo processo continua fino a quando l'elemento si trova .
Strutture dati

Al momento di decidere su algoritmi , i programmatori dovrebbero chiedersi se una funzione non ricorsiva potrebbe risolvere iterativo il compito nonché uno ricorsivo . Per esempio, in alcune strutture di dati , il programma avrà bisogno di cercare attraverso in modo lineare fino a quando si individua una voce di ricerca . In questo caso non ci sono alternative , ma per scorrere la struttura . Algoritmi ricorsivi semplificano il compito di ogni iterazione , il controllo per vedere se è arrivato il punto finale , quindi chiamare nuovamente la funzione se non lo ha. Per dimostrare le somiglianze tra ricorsione e iterazione , il seguente metodo Java di esempio mostra un metodo ricorsivo contorno : public void processNumber ( int myNum ) {if ( myNum > 100 ) return; altro processNumber ( myNum * 5) ; }

un'alternativa iterativo attuazione di questo sarebbe la seguente : . anum int = 3; mentre ( anum < 100 ) { anum * = 5; }

In questo caso la versione iterativa è più semplice

con compiti matematici

alcuni compiti di elaborazione matematica sono particolarmente adatti a funzioni ricorsive . Sequenze di Fibonacci dimostrano l'elaborazione ricorsiva . Ciascun numero in una sequenza di Fibonacci è la somma dei due precedenti . Il seguente esempio di codice Java dimostra una funzione per trovare un numero di Fibonacci : public int getFibonacci ( int fNum ) {if ( fNum < = 1) fNum ritorno , altrimenti ritorno getFibonacci ( fNum - 1) + getFibonacci ( fNum - 2) ; }

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

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

 

Programmazione © www.354353.com