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!