Ir ao conteúdo
  • Cadastre-se
Unborn

Método bubblesort

Recommended Posts

Boa noite, então estou construindo um código em que, precise gerar 100 mil números aleatórios sem repetições e depois ordena-los com 3 tipos de ordenação. A parte de criar os números sem repetir já o fiz, o problema está em justamente criar o método bubble sort, no debug ele faz certo mas na hora de executar aparece embaralhado então não creio que o if esteja errado. Segue o código completo. Creio eu que um dos meus erros esteja em como estou chamando. Outro erro é no Bubblesort.get(j), no debug fala que não existe a variável j sendo que ela está criada, quando rodo pelo debug, ele nem entra nesse if Bubblesort.get(j), já pula pro outro if. A dúvida fica nesses dois, como fazer com que o programa enxergue o J que está criado, e depois como vou chamar essa lista ordenada no Teste3 ?

package APS;

import java.util.ArrayList;

public class Teste3 {
	public static void main(String[] args) {
	Teste2 teste = new Teste2();
		
	System.out.println(teste);
	BubbleSort teste2 = Ordenar. BubbleSort();
    	 
      }
	}
	
=========================================================================================================================================

package APS;

import java.util.ArrayList;
import java.util.Random;

public class Teste2 {
    		
	public ArrayList<Integer> vetores(){
		
	ArrayList<Integer> vetor = new ArrayList<Integer>();
	int tamanho = 4;
	Random gerarnumero = new Random();
		
	for (int i = 0; i < tamanho; i++) {
		vetor.add(i);
	}
     for (int i = 0; i < tamanho ; i++){
		int b = gerarnumero.nextInt(tamanho);
		int aux = vetor.get(i);
		vetor.set(i, vetor.get(b));
		vetor.set(b, aux);
		}
	
	
     for(int j=0; j< vetor.size(); j++){
    	 System.out.println(vetor.get(j));
     }
     
     return vetor;     
     }

 		
	}	
	
=========================================================================================================================================
                                  
  package APS;
import java.util.ArrayList;
import java.util.Collections;
import APS.Teste2;
public class BubbleSort {
	  
	   BubbleSort(){
		Teste2 Ordenar = new Teste2();
		ArrayList<Integer> Bubblesort = Ordenar.vetores();
		boolean controle;
		
	    for (int i = 0; i < Bubblesort.size()-1; i++){
	    	controle = true;
	    	for (int j =0; j < (Bubblesort.size()-i); j++){
	    		 if (Bubblesort.get(i).compareTo(Bubblesort.get(i+1))>0){
	    			Integer a = Bubblesort.get(i);
	    			Bubblesort.set(i, Bubblesort.get(i+1));
	    			Bubblesort.set(i+1, a);
                   controle = false;
	    		}
	    	if (controle){
	    		break;
	    	}
	    		
	    	}
	    	
	    	}
     for(int i = 0; i < Bubblesort.size();i++){
	    	System.out.println(Bubblesort.get(i));
	    }
	   
	    }
}		


	

 

Editado por Unborn

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×