Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Algoritmos de busca e par de array

Eu tinha começado os cursos aqui da Alura de algoritmos e parei, agora vou tentar terminar, mas eu estive pegando exemplos da internet e vi que tem muita coisa voltada pa performance, o que é big O?

Como eu escolho um método de busca?

E também eu peguei um exemplo de um exercício que cria pares de array sem repetição, está em javascript e eu não entendi para que serve, onde eu utilizaria isso? O pairs() é alguma função do Javascript? Como eu faria sem o pairs()?

function comb(arr) {
    var duplas = [],
        l = arr.length;
    for(var i=0; i<l; ++i)
        for(var j=i+1; j<l; ++j)
            duplas.push([arr[i], arr[j]]);
    return duplas;
}
pairs([3, 6, 9]).forEach(function(comb){
    console.log(comb);
});
5 respostas

Olá.

Desconheço essa função pairs(). De onde você pegou isso?

De toda forma, há um forEach() ali que chama a função comb. Dentro do forEach() é executado o comando de log de cada resultado da função comb, baseado em cada elemento do array do pairs().

Olá , eu entendi o que faz a função. Acho que eu entendi errado, eu vi Array.prototype.pairs e achei que era do Javascript.

Esse seria o algoritmo do DNA?

Encontrei aqui:

http://stackoverflow.com/questions/22566379/how-to-get-all-pairs-of-array-javascript

solução!

Oi.

Então, estamos falando de JavaScript sim. O que acontece é que essa função não é nativa, ela está sendo criada no exemplo que você passou. Aqui:

Array.prototype.pairs = function...

Segue nesse link as que existem: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype

Portanto, na resposta do link que você enviou, a pessoa ensina a criar/modificar a função chamada pairs() dentro da estrutura de arrays. Isso é perigoso e interefere em todas estruturas de arrays, como exemplificado aqui: http://stackoverflow.com/questions/948358/adding-custom-functions-into-array-prototype

Era isso?

Sim, obrigada. É por causa do prototype, que é a herança do Javascript que passaria o padrão para outras funções de array.

Essa documentação da Mozilla tem bastante coisa, mas eu prefiro a documentação do Jquery, porque eu aprendo melhor visualizando exemplos.

Eu estou estudando algoritmos, porque no dia-a-dia eu não utilizava soluções muito complexas e o raciocínio para solução desses algoritmos, parece diferente do que eu utilizo.

Por nada.

Só cuidado que a documentação do jQuery é do... jQuery! Lá você só encontra coisas de jQuery, não de JavaScript em si.