Excelente explicacação!! So queria fazer uma correção, hash table não tem tempo O(LogN) e sim O(1) ou seja é constante. E sim o javascript usa hash table no object
e no Map
. Quando você passa uma chave para um objeto ele transforma isso no hash que vai apontar diretamente para o enredeço de memoria (simplificando). Ou seja independente no numero de elementos dentro do object
voce vai ter sempre o mesmo tempo de acesso.
Respondendo a "Só pra ilustrar, um exemplo prático em JavaScri..." dentro da publicação Dúvida sobre progressão dos estudos em Java.
1
2
Já corrigi o texto, obrigado!
Mas vale lembrar que "constante" não quer dizer "sempre o mesmo tempo", pois depende de detalhes internos do algoritmo. Por exemplo, conforme a quantidade de itens cresce, pode ter alguma demora adicional para resolver colisões (e o tempo total disso tudo depende dos algoritmos escolhidos), etc.
Mas enfim, O(logn) estava errado mesmo, eu pensei uma coisa e escrevi outra :-)