Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package trab;
- import java.util.Scanner;
- class PesquisaBinaria{
- public int pesquisa(int[] vetorNumeros, int chave){
- int bot, top, mid;
- bot=0;
- top=vetorNumeros.length-1;
- while(bot<=top) {
- mid = (bot + top) / 2;
- if (chave == vetorNumeros[mid]) {
- return mid;
- }
- if (chave < vetorNumeros[mid]) {
- top = mid - 1;
- }
- else {
- bot = mid + 1;
- }
- }
- int retornar=0;
- retornar = vetorNumeros.length+1;
- return -retornar;
- }
- public void ordenar(int[] vetor) {
- for (int i = 1; i < vetor.length; i++){
- int aux = vetor[i];
- int j = i;
- while ((j > 0) && (vetor[j-1] > aux)){
- vetor[j] = vetor[j-1];
- j -= 1;
- }
- vetor[j] = aux;
- }
- }
- }
- public class TestePesquisaBinaria {
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- while(true) {
- System.out.println("Entre o vetor a ser criado ?(Digite 'FIM' para encerrar o programa)");
- String tamanhoVetor = in.nextLine();
- if(tamanhoVetor.equals("FIM"))
- break;
- // Divide a linha entrada pelo caractere ","
- String splitted[] = tamanhoVetor.split(",");
- // A quantidade de números do vetor pode ser recebida do resultado do método split
- int numbers[] = new int[splitted.length];
- // Para cada número que foi separado, usar parseInt para converter para inteiro
- for(int i = 0; i < numbers.length; ++i)
- numbers[i] = Integer.parseInt(splitted[i].trim());
- PesquisaBinaria search = new PesquisaBinaria();
- search.ordenar(numbers);
- System.out.print("Os valores em ordem crescente do vetor são: ");
- for(int i = 0;i<numbers.length;i++) {
- System.out.print(numbers[i]+" ");
- }
- while(true) {
- System.out.println("\nDigite o valor da chave de pesquisa");
- String ans = in.nextLine();
- if(ans.equals("FIM"))
- break;
- int key = Integer.parseInt(ans);
- System.out.println("O valor retornado pela pesquisa é " + search.pesquisa(numbers, key));
- }
- }
- in.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement