Skip to content

Commit 841e1a4

Browse files
Arrumando os comentarios de Busca Binaria, Busca sequencia e recursiva
1 parent 53420da commit 841e1a4

File tree

3 files changed

+27
-27
lines changed

3 files changed

+27
-27
lines changed

src/rust/busca_binaria.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Crontibuidores
2+
Contribuidores
33
- Dromedario de Chapéu
44
55
O que é busca Binaria -
@@ -23,7 +23,7 @@ where
2323
// Centro indica o centro a lista ou sublista
2424
let mut centro = lista.len() / 2;
2525

26-
// Limite_r representa o maior indice possivel, referente ao extremo direito
26+
// Limite_r representa o maior indice possível, referente ao extremo direito
2727
// da lista atual, serve para dividir a lista original sem precisar ficar
2828
// clonando ou literalmente dividindo. Seria o [-1] da sublista
2929
let mut limite_r = lista.len() - 1;
@@ -49,19 +49,19 @@ where
4949
}
5050

5151
// O segundo bloco se responsabiliza em verificar a distancia entre o valor recebido
52-
// e o atual valor_p, caso sejá valor_p sejá maior, significa que o valor procurado
53-
// esta mais para tras, e o centro é movido para o centro da sub lista anterior.
54-
// Porem caso valor sejá maior qe o valor_p, significa que precisamos mover o centro
55-
// para o centro da sub lista superiors
52+
// e o atual valor_p, caso seja valor_p seja maior, significa que o valor procurado
53+
// esta mais para trás, e o centro é movido para o centro da sub lista anterior.
54+
// Porem caso valor seja maior que o valor_p, significa que precisamos mover o centro
55+
// para o centro da sub lista superiors
5656
if *valor_p > valor {
5757
limite_r = centro;
5858
centro = centro / 2;
5959
} else if *valor_p < valor {
6060
limite_l = centro;
6161
// O If esta verificando se o espaço entre limite_r e limite_l é igual a 1
62-
// pois a operação de padrão usada daria o resultado de 0 nesse caso, pos
63-
// Rust aredonda os valores para baixo, logo 0.5 é jogado para 0
64-
// Poderia ser feito em uma linha utilizado conversõ de tipos e arredondamento
62+
// pois a operação de padrão usada daria o resultado de 0 nesse caso, pois
63+
// Rust arredonda os valores para baixo, logo 0.5 é jogado para 0
64+
// Poderia ser feito em uma linha utilizado conversão de tipos e arredondamento
6565
// porem eu pessoalmente acredito que a performance ganha não vale compensa
6666

6767
centro = if (limite_r - limite_l) == 1 { centro + 1 }

src/rust/busca_sequencial.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
/*
2-
Crontibuidores
2+
Contribuidores
33
- Dromedario de Chapéu
44
5-
Busca Sequencial é o mais simples algoritmo de busca possivel, alem de
6-
ser um dos menos eficientes. Ele simplesmente intera por todos os itens
5+
Busca Sequencial é o mais simples algoritmo de busca possessive, alem de
6+
ser um dos menos eficientes. Ele simplesmente itera por todos os itens
77
de uma lista ate encontrar o valor desejado ou atingir o final da lista
88
retornando que o elemento não esta presente na lista.
99
10-
Esse algotimo pode ser util para listas pequenas de algumas poucas centenas
10+
Esse algorítimo pode ser útil para listas pequenas de algumas poucas centenas
1111
de valores de tipo simples, porem mais que isso ele sera um grande gargalo
1212
durante a execução do programa.
1313
14-
Uma possivel vantagem deste algoritmo, é que ele independe da lista esta
14+
Uma possível vantagem deste algoritmo, é que ele independe da lista esta
1515
ordenada para funcionar. Pois ele não se importa com a ordem dos elementos.
1616
*/
1717
fn busca_sequencial(lista: &[i32], valor: i32) -> (bool, usize) {

src/rust/busca_sequencial_recursiva.rs

+13-13
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
/*
2-
Crontibuidores
3-
- Dromedario de Chapéu
2+
Contribuidores
3+
- Dromedário de Chapéu
44
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
99
onde não ha mais o que fazer.
1010
1111
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.
1414
Porem caso seja uma lista de milhares de itens este algoritmo sera um problema.
1515
*/
1616

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.
1919
fn busca_sequencial_recursiva(lista: &[i32], valor: i32, indice: usize) -> (bool, usize) {
2020
// 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
2222
// foram percorridos
2323
if indice == lista.len() {
2424
return (false, 0)
2525
} else if lista[indice] == valor {
2626
return (true, indice)
2727
}
2828

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
3131
// item da lista
3232
return busca_sequencial_recursiva(lista, valor, indice + 1);
3333
}

0 commit comments

Comments
 (0)