Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Simplificar o trabalho de uma linkedList é possível e viável dessa forma?

não daria pra agilizar o processamento de uma linkedList aumentando o peso de uma busca individual apenas mandando duas buscas ao mesmo tempo uma do começo pro fim e outra do fim pro começo? Já que o a linkedList conhece o primeiro e o último elemento, dessa forma o processamento é mais pesado, mas libera capacidade de processamento mais rápido.

1 resposta
solução!

Olá Guilherme, tudo bem com você?

Peço desculpas pela demora para obter retorno.

Muito legal a sua ideia de fazer a busca usando as duas pontas, e realmente faz muito sentido!

Quando falamos de algoritmos de busca, ou seja, que buscam um elemento em uma lista, podemos fazer de diversas maneiras e em geral a melhor opção varia de caso a caso. Por exemplo: a sua implementação de algoritmo vai achar com muita facilidade um elemento que esteja posicionado mais para o inicio ou mais para o fim da lista, no entanto caso ele esteja no meio ele vai procurar em todos que estão antes e depois dele: vai ter o dobro de esforço.

Uma alternativa legal, é manter um critério de ordenação dos elementos, e sempre que precisarmos buscar um elemento, fazer isso em uma lista já ordenada! Para exemplificar, vamos pensar na lista:

{1, 2, 3, 4, 5, 6};

Para buscar números mais altos, nós sabemos que eles vão estar mais para o fim, já os mais baixos vão estar no início!

Sendo assim, os algoritmos de busca estão intimamente ligados aos algoritmos de ordenação, e existem vários (MESMO) que vão variar muito da necessidade do seu código.

Para se aprofundar mais, te recomendo a leitura dos seguintes artigos:

Ordenando números em Java - um pouco sobre a ordenação de listas!

Ordenando uma lista de objetos em Java - ordenação com listas de objetos!

Busca binária: aprenda a implementar em Python - a busca binária é um dos algoritmos de busca mais conhecidos e eficientes, no artigo é implementado em Python, mas o interessante é tentar entender a lógica por trás desse algoritmo, que pode ser implementado também em Java.

Sorting Algorithms - um guia de algoritmos de ordenação da GeeksForGeeks, que mostra quais são e suas implementações em diversas linguagens. Este último está em inglês mas você pode usar a função de tradução do seu navegador caso seja necessário.

Fico à disposição caso hajam dúvidas e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!