|
1 | 1 | /*
|
2 |
| - Crontibuidores |
3 |
| - - Dromedario de Chapéu |
| 2 | + Contribuidores |
| 3 | + - Dromedário de Chapéu |
4 | 4 |
|
5 |
| - A Busca Sequencial Recusivar consiste do mesmo conceito da Busca Sequencial. |
6 |
| - A diferente é que invês de interar na lista utilizando um for por exemplo, |
7 |
| - é utlizado recursãom que é resumidamente uma função que se chama N vezes com |
8 |
| - mudanças no seus parametros te atingir ou o resultado desejado, ou um estado |
| 5 | + A Busca Sequencial Recursiva consiste do mesmo conceito da Busca Sequencial. |
| 6 | + A diferente é que invés de iterar na lista utilizando um for por exemplo, |
| 7 | + é utilizado recursão que é resumidamente uma função que se chama N vezes com |
| 8 | + mudanças no seus parâmetros te atingir ou o resultado desejado, ou um estado |
9 | 9 | onde não ha mais o que fazer.
|
10 | 10 |
|
11 | 11 | Essa implementação é ainda mais lenta e custosa que a forma utilizando for,
|
12 |
| - pois recursão utliza muito mais memoria e processamente para ser utlizada, para |
13 |
| - poucos itens na pratica ele vai ser tão rapido quanto qualquer outro algorimo. |
| 12 | + pois recursão utiliza muito mais memoria e processamento para ser utilizada, para |
| 13 | + poucos itens na pratica ele vai ser tão rápido quanto qualquer outro algoritmo. |
14 | 14 | Porem caso seja uma lista de milhares de itens este algoritmo sera um problema.
|
15 | 15 | */
|
16 | 16 |
|
17 |
| -// A mudança da declaração da sequencial normal para esta é a adição do parametro |
18 |
| -// indice, que indica em qual indice da lista nos estamos. |
| 17 | +// A mudança da declaração da sequencial normal para esta é a adição do parâmetro |
| 18 | +// índice, que indica em qual índice da lista nos estamos. |
19 | 19 | fn busca_sequencial_recursiva(lista: &[i32], valor: i32, indice: usize) -> (bool, usize) {
|
20 | 20 | // O primeiro If indica a condição onde a recursão ocorreu vezes o suficiente
|
21 |
| - // para que o indice chega a ofinal da lista + 1, logo todos os itens da lista |
| 21 | + // para que o índice chega ao final da lista + 1, logo todos os itens da lista |
22 | 22 | // foram percorridos
|
23 | 23 | if indice == lista.len() {
|
24 | 24 | return (false, 0)
|
25 | 25 | } else if lista[indice] == valor {
|
26 | 26 | return (true, indice)
|
27 | 27 | }
|
28 | 28 |
|
29 |
| - // Caso o item atual não seja o item desejado, nos chamamos a função com o indice |
30 |
| - // acrescentado, para que na proxima execução da função seja verificado o proximo |
| 29 | + // Caso o item atual não seja o item desejado, nos chamamos a função com o índice |
| 30 | + // acrescentado, para que na próxima execução da função seja verificado o próximo |
31 | 31 | // item da lista
|
32 | 32 | return busca_sequencial_recursiva(lista, valor, indice + 1);
|
33 | 33 | }
|
|
0 commit comments