Buscar

4) Faça uma aplicação Java multithread para buscar um dado elemento em um vetor (desordenado). Utilize um objeto Random para gerar numeros aleatór...

4) Faça uma aplicação Java multithread para buscar um dado elemento em um vetor (desordenado). Utilize um objeto Random para gerar numeros aleatórios - Cada Thread ficará responsável pela busca em uma parte do vetor - Retorne a posição do elemento no vetor ou –1 caso o elemento não foi encontrado
Criar uma aplicação Java multithread
Buscar um dado elemento em um vetor desordenado
Utilizar um objeto Random para gerar números aleatórios
Cada thread ficará responsável pela busca em uma parte do vetor
Retornar a posição do elemento no vetor ou -1 caso o elemento não tenha sido encontrado

Essa pergunta também está no material:

Ex 7   Threads
1 pág.

Java Orientação Objeto Faculdade Maurício de Nassau de Campina GrandeFaculdade Maurício de Nassau de Campina Grande

💡 1 Resposta

User badge image

Ed Verified user icon

Segue um exemplo de código em Java que atende aos requisitos da questão: ``` import java.util.Random; public class BuscaThread extends Thread { private int[] vetor; private int elemento; private int inicio; private int fim; private int resultado = -1; public BuscaThread(int[] vetor, int elemento, int inicio, int fim) { this.vetor = vetor; this.elemento = elemento; this.inicio = inicio; this.fim = fim; } public int getResultado() { return resultado; } public void run() { for (int i = inicio; i < fim; i++) { if (vetor[i] == elemento) { resultado = i; break; } } } public static void main(String[] args) { int tamanho = 100; int[] vetor = new int[tamanho]; Random random = new Random(); for (int i = 0; i < tamanho; i++) { vetor[i] = random.nextInt(1000); } int elemento = random.nextInt(1000); int numThreads = 4; BuscaThread[] threads = new BuscaThread[numThreads]; int elementosPorThread = tamanho / numThreads; for (int i = 0; i < numThreads; i++) { int inicio = i * elementosPorThread; int fim = (i == numThreads - 1) ? tamanho : (i + 1) * elementosPorThread; threads[i] = new BuscaThread(vetor, elemento, inicio, fim); threads[i].start(); } int resultado = -1; for (int i = 0; i < numThreads; i++) { try { threads[i].join(); if (threads[i].getResultado() != -1) { resultado = threads[i].getResultado(); break; } } catch (InterruptedException e) { e.printStackTrace(); } } if (resultado == -1) { System.out.println("Elemento não encontrado"); } else { System.out.println("Elemento encontrado na posição " + resultado); } } } ``` Nesse exemplo, é criada uma classe `BuscaThread` que estende a classe `Thread` e é responsável por buscar um elemento em uma parte do vetor. A classe possui um construtor que recebe o vetor, o elemento a ser buscado, o índice de início e o índice de fim da parte do vetor que a thread deve buscar. A classe também possui um método `getResultado()` que retorna a posição do elemento no vetor ou -1 caso o elemento não tenha sido encontrado. No método `main`, é criado um vetor de tamanho 100 com números aleatórios gerados pelo objeto `Random`. Também é gerado um elemento aleatório a ser buscado. Em seguida, são criadas 4 threads, cada uma responsável por buscar uma parte do vetor. O número de elementos por thread é calculado dividindo o tamanho do vetor pelo número de threads. As threads são iniciadas e, em seguida, é feita a espera pelo término de cada thread. Se uma thread encontrar o elemento, o resultado é armazenado e as outras threads são interrompidas. Por fim, é exibida a posição do elemento no vetor ou a mensagem "Elemento não encontrado".

0
Dislike0

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais