Duvida Bolha [RESOLVIDO]

4 respostas
V

Pessoal montei um metodo bolha de ordenação e gostaria de fazer um esquema de radom com ele para que ele ordenace um vetor de nuemeros aleatórios mas eu gostaria que ele chamasse um método de fora para rodar o vetor. sei que ta meio confuso mas não sei como me expressar.

vou postar o código para tentar ficar mais claro.

public static void main(String[] args) {
int comps,trocas=0;
		
         vetor();

		boolean houveTroca; // variável booleana utilizada para sinalizar quando

		// o vetor estiver em ordem

		int aux; // variável auxiliar para troca de posições entre os elementos

		// do vetor

		String entrada;

		for (int i = 0; i < vetor.length; i++)

		{

			entrada = JOptionPane.showInputDialog(null, "informe o " + i
					+ "o elemento");

			vetor[i] = Integer.parseInt(entrada);

		}

		do

		{

			// Alt + Shift + R muda todos os nomes das variaveis.

			houveTroca = false; // inicialmente, não houve troca de posições

			// entre elementos

			for (int i = 0; i < vetor.length - 1; i++) // percorre todo o vetor,

			// comparando elementos

			// adjacentes e

			// trocando-os de

			// posição

			// caso estejam fora de ordem

			{
				
				if (vetor[i] > vetor[i + 1]) // se dois elementos adjacentes

				// estão fora de ordem, efetua a

				// troca

				{
                     trocas++;
					aux = vetor[i];

					vetor[i] = vetor[i + 1];

					vetor[i + 1] = aux;

					houveTroca = true; // indica que houve troca de posições

					// entre elementos

				}

			}

		} while (houveTroca); // o processo só para quando o vetor for

		// percorrido totalmente sem ter havido

		for (int i = 0; i < vetor.length; i++) {

			System.out.print(vetor[i] + ", ");

		}
		System.out.print("Total de trocas:" + trocas);
	}
	public static void vetor(String[] args) {
		 int []numeros = new int [10]; 
		  double [] vlr = new double [10];
		  
		  for(int i = 0; i < 10 ; i++){
		   //vlr[i]=Math.random()*100;
		   
		   numeros[i] = (int)(Math.random()*100);
		  }
		  for(int i = 0; i < 10 ; i++){
			  System.out.print(" " + numeros[i]);
		  }
}

4 Respostas

V

Pessoal a duvida ainda é a mesma mas eu melhorei meu código e msmo assim não roda vou postar aqui para alguem poder me ajudar att.

public static void main(String[] args) {
int comps,trocas=0;
		
int []vetor = new int [10]; 




		boolean houveTroca; // variável booleana utilizada para sinalizar quando

		// o vetor estiver em ordem

		int aux; // variável auxiliar para troca de posições entre os elementos

		// do vetor

		

		for (int i = 0; i < vetor.length; i++)

		{

			vetor();

		}

		do

		{

			// Alt + Shift + R muda todos os nomes das variaveis.

			houveTroca = false; // inicialmente, não houve troca de posições

			// entre elementos

			for (int i = 0; i < vetor.length - 1; i++) // percorre todo o vetor,

			// comparando elementos

			// adjacentes e

			// trocando-os de

			// posição

			// caso estejam fora de ordem

			{
				
				if (vetor[i] > vetor[i + 1]) // se dois elementos adjacentes

				// estão fora de ordem, efetua a

				// troca

				{
                     trocas++;
					aux = vetor[i];

					vetor[i] = vetor[i + 1];

					vetor[i + 1] = aux;

					houveTroca = true; // indica que houve troca de posições

					// entre elementos

				}

			}

		} while (houveTroca); // o processo só para quando o vetor for

		// percorrido totalmente sem ter havido

		for (int i = 0; i < vetor.length; i++) {

			System.out.print(vetor[i] + ", ");

		}
		System.out.print("Total de trocas:" + trocas);
	}
	public static void vetor(String[] args) {
		 int []numeros = new int [10]; 
		  
		  
		  for(int i = 0; i < 10 ; i++){
		   //vlr[i]=Math.random()*100;
		   
		   numeros[i] = (int)(Math.random()*100);
		  }
		  for(int i = 0; i < 10 ; i++){
			  System.out.print(" " + numeros[i]);
		  }
		  


	}
A

1º Erro,

Quando voce declarou

public static void vetor… nao vai String[] args…

2º voce criou um vetor dentro do main com o mesmo nome da funcao.

dei uma olhada por cima vou estuda seu código na seqüência eu posto.

A

Olá, como voce falou seu codigo estava confuso,
espero que o codigo a seguir possa lhe ajudar.

como esse procedimento nao e muito complexo se voce criar uma metodo somente para rodar o vetor teu void main vai ficar praticamente vazio.

import java.util.Arrays;

public class Exercicio9 {

public static void main(String[] args) {


    int[] numerosSort = new int[10];  // vetor inteiro com 10 posicoes

    for (int i = 0; i < numerosSort.length; i++) {  // sotear 10 numero inteiros1 para cada posicao
        numerosSort[i] = (int) (Math.random() * 10);

    }


    Arrays.sort(numerosSort); // ordena em ordem crescente


    for (int i = 0; i < numerosSort.length; i++) {   // mostra vetor ordenado
        System.out.println(numerosSort[i]);

    }
}

}

// agora se voce prefirir e so renomear esta classe e usar como funcao para retorno ao teu void main

V

Opa muito obrigador por responder mas a ideia mesmo seria como eu posso chamar esse metodo que cria um vetor qqer para dentro o minha ordenaçao do metodo bolha???

essa e a minha duvida realmente como eu faria isso???

att

Criado 23 de setembro de 2010
Ultima resposta 27 de set. de 2010
Respostas 4
Participantes 2