Buscar

FABIO LUCAS NASCIMENTO SOARES - Atividade de busca e ordenação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

Resolução dos problemas propostos - Codificação em Java:
1°)
package buscaordenacaoex1;
import java.util.Scanner;
import java.util.Random;
public class BuscaOrdenacaoEx1 {
public static boolean verificar(int[] vet, int valor) {
int i;
for (i = 0; i < vet.length; i++) {
if (vet[i] == valor) {
return true;
}
}
return false;
}
public static void preencheVetor(int[] vet) {
Random aleatorio = new Random();
int num;
int i;
boolean Erepetido;
for (i = 0; i < vet.length; i++) {
num = aleatorio.nextInt(10000) + 1;
Erepetido = verificar(vet, num);
if (Erepetido == false) {
vet[i] = num;
}
}
}
public static void exibeVetor(int[] vetor) {
int i;
System.out.print("|");
for (i = 0; i < vetor.length; i++) {
System.out.print(vetor[i] + " ");
}
System.out.println("|");
System.out.println();
}
public static int buscaBinaria(int[] vet, int valor) {
int inicio = 0, meio = 0, fim = vet.length;
boolean achou = false;
while (inicio < fim) {
meio = (inicio + fim) / 2;
if (vet[meio] == valor) {
achou = true;
break;
} else if (vet[meio] > valor) {
inicio = meio + 1;
} else {
fim = meio - 1;
}
}
if (achou == true) {
return meio;
} else {
return -1;
}
}
public static void bubbleSort(int[] vet) {
int i, fim = vet.length - 2, pos = 0;
int chave;
boolean troca;
do {
troca = false;
for (i = 0; i <= fim; i++) {
if (vet[i] < vet[i + 1]) {
chave = vet[i];
vet[i] = vet[i + 1];
vet[i + 1] = chave;
pos = i;
troca = true;
}
}
fim = pos - 1;
} while (troca == true);
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char op;
int[] vetInt = new int[10];
int num, result;
preencheVetor(vetInt);
bubbleSort(vetInt);
System.out.println("Preenchimento automático do vetor de inteiros");
do {
System.out.println("Tecle 1 - para buscar número no vetor");
System.out.println("Tecle 2 - para exibir o vetor");
System.out.println("Tecle 3 - para sair");
System.out.print("Opção: ");
op = in.next().charAt(0);
switch (op) {
case '1':
System.out.print("Digite o número entre 1 e 10.000 : ");
num = in.nextInt();
while (num < 0 || num > 10000) {
System.out.print("Número inválido. Tecle entre 1 e 10.000 : ");
num = in.nextInt();
}
result = buscaBinaria(vetInt, num);
if (result == -1) {
System.out.println("Número não encontrado no vetor");
} else {
System.out.println("O número " + num + " está na posição"
+ " " + result + " do vetor");
}
break;
case '2':
exibeVetor(vetInt);
break;
case '3':
System.out.println("Programa encerrado!");
break;
default:
System.out.println("Tecla inválida!");
break;
}
} while (op != '3');
}
}
2°)
package buscaordenacaoex2;
import java.util.Scanner;
public class BuscaOrdenacaoEx2 {
public static void exibeMenu() {
System.out.println("Tecle 1 - Para buscar um nome");
System.out.println("Tecle 2 - Para verificar os nomes");
System.out.println("Tecle 3 - Para encerrar o programa");
System.out.print("Sua opção: ");
}
public static void exibeVetor(String[] vetor) {
int i;
System.out.println("Vetor de nomes: ");
System.out.print("|");
for (i = 0; i < vetor.length; i++) {
System.out.print(vetor[i] + " |");
}
System.out.println();
}
public static boolean Erepetido(String[] vet, String nome, int cont) {
int i;
for (i = 0; i < cont; i++) {
if (nome.equalsIgnoreCase(vet[i]) == true) {
return true;
}
}
return false;
}
public static void preencheVetor(String[] vet) {
Scanner in = new Scanner(System.in);
int i, cont = 0;
String nomeAux;
boolean repetido;
System.out.println("Preenchimento dos nomes: ");
for (i = 0; i < vet.length; i++) {
System.out.print((i + 1) + "° nome: ");
nomeAux = in.nextLine();
repetido = Erepetido(vet, nomeAux, cont);
while (repetido == true) {
System.out.println("Nome informado já se encontra no vetor!");
System.out.print("Insira outro nome: ");
nomeAux = in.nextLine();
repetido = Erepetido(vet, nomeAux, cont);
}
vet[i] = nomeAux;
cont++;
}
System.out.println("Preenchimento concluído!");
System.out.println();
}
public static void ordenacaoBubbleSort(String[] nomes) {
int i, fim = nomes.length - 1, pos = 0;
String chave;
boolean troca;
do {
troca = false;
for (i = 0; i < fim; i++) {
if (nomes[i].compareToIgnoreCase(nomes[i + 1]) > 0) {
chave = nomes[i];
nomes[i] = nomes[i + 1];
nomes[i + 1] = chave;
pos = i;
troca = true;
}
}
fim = pos;
} while (troca == true);
}
public static int buscaBinaria(String[] nomes, String n) {
int inicio = 0, meio, fim = nomes.length;
while (inicio < fim) {
meio = (inicio + fim) / 2;
if (nomes[meio].compareToIgnoreCase(n) == 0) {
return meio;
} else if (nomes[meio].compareToIgnoreCase(n) > 0) {
fim = meio - 1;
} else {
inicio = meio + 1;
}
}
return -1;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int result;
char op;
String nome;
String[] vetNomes = new String[5];
preencheVetor(vetNomes);
ordenacaoBubbleSort(vetNomes);
do {
exibeMenu();
op = in.next().charAt(0);
in.nextLine();
switch (op) {
case '1':
System.out.print("Informe o nome: ");
nome = in.nextLine();
result = buscaBinaria(vetNomes, nome);
if (result == -1) {
System.out.println("Nome não encontrado no vetor!");
} else {
System.out.println("O nome " + nome + " está na posição"
+ " " + (result + 1) + " do vetor.");
}
break;
case '2':
exibeVetor(vetNomes);
break;
case '3':
System.out.println("Programa encerrado!");
break;
default:
System.out.println("Opção inválida.");
}
} while (op != '3');
}
}

Continue navegando