Numeros aleatorios

alguém pode me ajudar com esse exercicio? ja tentei todas as possibilidades que vieram na minha cabeça e continua dando erro
Implemente um algoritmo que tenha um método chamado ordenaSelecao . Este método deve receber um vetor de números inteiros no parâmetro. Na sua execução, este método deve ordenar o vetor recebido no parâmetro utilizando o algoritmo de ordenação por seleção.

Este algoritmo também deve ter um método chamado buscaSequencial . Este método deve receber nos parâmetros um vetor de números inteiros e também um outro número inteiro que será pesquisado no vetor. O método deverá retornar a posição em que este número se encontra no vetor (índice), ou então, deverá retornar -1 caso o valor não esteja presente no vetor.

No método principal, criar um vetor contendo 10 posições preenchidos com números aleatórios entre 0 e 100. Em seguida, ordene este vetor chamando o método de ordenação por seleção. Solicite ao usuário por um número. Chame o método de busca sequencial fornecendo o vetor e o número. Apresente na tela uma mensagem indicando se o número está presente ou não no vetor (utilizando o índice retornado).

o código

import java.util.Random;

import javax.swing.JOptionPane;

public class Busca {

public static void ordenaSelecao(int vetor[]) {

	int menor;
	int posicao;

	for (int cont = 0; cont < vetor.length; cont++) {
		menor = vetor[cont];
		posicao = cont;

		for (int i = cont + 1; i < vetor.length; i++) {
			if (menor > vetor[i]) {
				menor = vetor[i];
				posicao = i;
			}
		}
		if (cont != posicao) {
			int aux = vetor[cont];
			vetor[cont] = vetor[posicao];
			vetor[posicao] = aux;
		}
	}
}

public static void buscaSequencial(int vetor2[], int pesquisar) {
	boolean achou = false;
	int indice = -1;

	for (int cont = 0; cont < vetor2.length; cont++) {
		if (vetor2[cont] == pesquisar) {
			achou = true;
			indice = cont;
			break;
		}
	}
	if (achou) {
		System.out.println("O valor foi encontrado");
	} else {
		System.out.println("O valor não foi encontrado");
	}
}

public static void main(String[] args) {
	int vet[] = new int[10];
	Random gerador = new Random();

	for (int i = 0; i < vet.length; i++) {
		vet[i] = gerador.nextInt(100);

	}
	ordenaSelecao(vet);

	int numero = Integer.parseInt(JOptionPane.showInputDialog("Informe um número"));

	buscaSequencial(vet, numero);

}

}

Debora, olá. Você tem duas formas de mostrar a posição:

  1. Você pode usar o seu método buscaSequencial para, ao invés de não retornar nada (void), retornar um inteiro com a posição (return indice;)
  2. Você pode colocar a informação do índice quando você da o println com a confirmação se foi encontrado ou não.

Lembre também, pelo menos na fase de testes, de mostrar os vetores para verificar se foi ordenado e se o valor realmente existe.

Código

import java.util.Random;

import javax.swing.JOptionPane;

public class RespostasForum {

	public static void ordenaSelecao(int vetor[]) {

		int menor;
		int posicao;

		for (int cont = 0; cont < vetor.length; cont++) {
			menor = vetor[cont];
			posicao = cont;

			for (int i = cont + 1; i < vetor.length; i++) {
				if (menor > vetor[i]) {
					menor = vetor[i];
					posicao = i;
				}
			}
			if (cont != posicao) {
				int aux = vetor[cont];
				vetor[cont] = vetor[posicao];
				vetor[posicao] = aux;
			}
		}
	}

	public static int buscaSequencial(int vetor2[], int pesquisar) {
		boolean achou = false;
		int indice = -1;

		for (int cont = 0; cont < vetor2.length; cont++) {
			if (vetor2[cont] == pesquisar) {
				achou = true;
				indice = cont;
				break;
			}
		}
		if (achou) {
			System.out.println("\nO valor foi encontrado, na posição " + (indice+1));
		} else {
			System.out.println("\nO valor não foi encontrado");
		}
		return indice;
	}

	public static void main(String[] args) {
		int vet[] = new int[10];
		Random gerador = new Random();

		for (int i = 0; i < vet.length; i++) {
			vet[i] = gerador.nextInt(100);
			System.out.print(vet[i] + " ");
		}
		ordenaSelecao(vet);
		System.out.println();

		for (int i = 0; i < vet.length; i++) {
			System.out.print(vet[i] + " ");
		}

		int numero = Integer.parseInt(JOptionPane.showInputDialog("Informe um número"));

		buscaSequencial(vet, numero);

	}

}
1 curtida