Busca sequencial e busca binaria com tipo char?

Pessoal comecei estudar java a pouco tempo e peguei alguns exercícios pra praticar, porem parei em um aonde nao consigo continuar alguém poderia me ajudar ?

Implemente os métodos de busca sequencial e busca binária, para efetuar a busca de um país em exemplos de vetores como mostrados a seguir.

Efetue chamadas para testar seus métodos, por exemplo, com os vetores:

String paisesA [] = { "Ucrânia", "Turquia", "Suíça", "México", "França", "Espanha",
"Chile", "Brasil , "Argentina" };
String paisesB [] = { "Argentina", "Brasil", "Chile", "Dinamarca", "Espanha", "França",
"Inglaterra", "Turquia", "Uruguai" };
String paisesC [] = { "Canadá", "Áustria", "Chile", "Itália", "Portugal", "Grécia",
"Angola", "Moçambique", "Rússia" };

Sugestões:

Criar um método:int buscaSequencial( String vet[], String buscado)
Criar um método: int buscaBinariaEmListaCrescente (String vet[], String buscado)
Criar um método: int buscaBinariaEmListaDecrescente (String vet[], String buscado)

E que tipo de ajuda está precisando? Não sabe nem começar um programa java (criar uma classe com um método main() )? Pois você só passou o enunciado dos problemas.

Pra começar, supondo que você sabe um básico de Java (variáveis, métodos, comparações com if, loops), você já pesquisou o que é uma busca sequencial? E busca binária? Sem entender esses conceitos, não adianta tentar te passar algoritmos.

Obs: quando for criar um tópico, procure dar um título mais descritivo do seu problema, pois isso ajuda quem vê as perguntas a querer te ajudar. “Sou novo em Java” não nos diz nada sobre o seu problema.

Abraço.

1 curtida

Me desculpe, proxima vez irei melhorar nas minhas perguntas é q eu estava meio com pressa. Mas entao eu ja tenho uma noção sobre variáveis, métodos, comparações com if, loops, Eu pesquisei sobre busca binaria e sequencial mas a parte q estou enfrentando problema é na hora de fazer a pesquisa, na hora do usuário digitar o pais q ele quer pesquisar. Os únicos exemplos q eu estou achando é com busca de números (usuario digita algum numero e ele ja pesquisa no veto ) mas não acho algum exemplo com char

Por “char”, suponho que esteja falando de Strings. Char é outro tipo de dado em Java.

Que código está usando para pegar o que o usuário digita?

Se está usando Scanner, pode usar o método nextLine(), que retorna o texto digitado pelo usuário.

Se está usando JOptionPane, o método showInputDialog já retorna uma String, então você pode passar essa string para seus métodos de busca.

Abraço.

Com String fica muito mais fácil.
Sabia que String possui vários métodos utilitários, dentre os quais “startsWith”?
Por exemplo:

String nome = "Luis Augusto";
boolean primeiroNomeOk = nome.startsWith("Luis");//retorna true

String outroNome = "João da Silva";
boolean primeiroNomeOk2 = outroNome.startsWith("Luis");//retorn false

Talvez você não queira pegar os nomes que começam com um, dois ou vários caracteres.
Aí você pode fazer uso do método sobrescrito “equals” ou do método “equalsIgnoreCase” que é similar ao primeiro, mas verifica os caracteres e sua ordem, desprezando o case de cada um.
Exemplo:

String x = "Teste";
boolean equals = "Teste".equals(x);//Retorna true
boolean notEquals = "teste".equals(x)";//Retorna false, pois o primeiro t é minúsculo
boolean isEquals = "teste".equalsIgnoreCase(x);//Retorna true, pois ignora o t minúsculo, apenas verifica se é o mesmo char, na mesma posição
//P.S.: É uma boa prática comparar colocando o valor que se conhece antes do valor a ser verificado.

Acho que isso resolve boa parte dos problemas, não?

Com Strings, vc consegue ver se um vem antes ou depois, pela ordem alfabética.
“A”.compareTo(“B”) = -1
"B".compareTo(“A”) = 1
"B".compareTo(“B”) = 0

sabendo disso, vc consegue saber quem é maior que quem.

Só um detalhe: pra busca binária, a lista precisa estar ordenada. Pra busca linear não, é só percorrer todos os registros e ver se achou ou não