Ir ao conteúdo

Ordenação em Java


FELIPEMBC

Posts recomendados

Postado

Olá pessoal, eu tô querendo fazer um algoritmo para ordenar um vetor. Eu já fiz parte dele só que sem o método de ordenação.

public class Vetor
{
private int[] vetor;
private int Tamanho = 0;
private int TamanhoMax;
public Vetor(int a)
{
 TamanhoMax = a;
 vetor = new int[TamanhoMax];
}
public void AdicionarElemento(int
{
 if(Tamanho<TamanhoMax)
 {
  vetor[Tamanho] = b;
  Tamanho = Tamanho + 1;
 }
               
}
public void RetirarElemento()
{
 if(Tamanho > 0)
 {        
  Tamanho = Tamanho - 1;
  vetor[Tamanho] = null;
 }
}
public void TamanhoTotal()
{
 System.out.println(TamanhoMax);
}
public void TamanhoVetor()
{
 System.out.println(Tamanho);
}
 public void RetornaElementos()
              {
              int i;
              for(i=0;i<Tamanho;i++)
              System.out.println(Elementos[i]);
              }
}

Não sei se esse algoritmo tá correto para fazer esses metodos que já coloquei aqui. O que quero saber mesmo como posso ordenar esse vetor de acordo com o que o usuário digitar?!

Algo do tipo, o que vou escrever agora é só um rascunho:

public static void main (String args[])
{
       Vetor v;
       v = new Vetor(10);
       a.AdicionarElemento(10);
       a.AdicionarElemento(6);
       a.AdicionarElemento(3);
       a.AdicionarElemento(7);
       System.out.println("O Vetor é: ");
       a.RetornaElementos();
}

Aqui nesse ponto o vetor ia aparecer algo do tipo 10,6,3,7. Como posso criar um método, nessa classe que já tenho que possa ordenar esse vetor!?!?

:stupid:

Postado

public class Vetor {
private int[] vetor;
private int Tamanho = 0;
private int TamanhoMax;

public Vetor(int a){
  TamanhoMax = a;
  vetor = new int[TamanhoMax];
}
public void AdicionarElemento(int {
 
  if(Tamanho<TamanhoMax) {
    vetor[Tamanho] = b;
    Tamanho = Tamanho + 1;
  }
             
}
public void RetirarElemento() {
  if(Tamanho > 0) {        
    Tamanho = Tamanho - 1;
    vetor[Tamanho] = -1;
  }
}
public void TamanhoTotal() {
  System.out.println(TamanhoMax);
}
public void TamanhoVetor(){
  System.out.println(Tamanho);
}
 public void RetornaElementos(){
    int i;
       for(i=0;i<Tamanho;i++)
       System.out.println(vetor[i]);
   }
   public void OrdenarElementos(Vetor {        
 for (int pass = 0; pass < Tamanho; pass++)        
  for (int i = 0; i < Tamanho-1; i++)            
   if (b.vetor[i] > b.vetor[i+1]){
    int aux = 0;
    aux = b.vetor[i];
    b.vetor[i]=b.vetor[i+1];
    b.vetor[i+1]=aux;
   }
   
}        

public static void main (String args[]){
 Vetor v = new Vetor(10);
    v.AdicionarElemento(60);
    v.AdicionarElemento(6);
    v.AdicionarElemento(3);
    v.AdicionarElemento(7);
    System.out.println("O Vetor e: ");
    v.RetornaElementos();
    v.OrdenarElementos(v);
    System.out.println("------");
    for (int i=0;i<v.Tamanho;i++)
     System.out.println(v.vetor[i]);
}
}

Aqui está o código.

Veja que aqui você não pode fazer isto

vetor[Tamanho] = null;

O que você está dizendo aqui é setar o valor do vetor na posição tamanho para null, como este valor é inteiro e um inteiro não pode ser null, dá erro.

Se você colocasse vetor=null, dai sim daria certo.

Espero que dê tudo certo ai.

Abraços.

Postado
  Citação
Postado Originalmente por Zangrela@18 de agosto de 2005, 13:14

Espero que dê tudo certo ai.

Abraços.

Valeu pela ajuda, funcionou sim. Mas tenho outra dúvida.

Como ficaria essa ordenação de fosse um vetor de palavras (strings)!?!?

:stupid:

Postado

public class Teste{
public static void main(String args[]){
 int[] a = new int[]{10,15,2,4,6,7,8,9,11,-3,-4,-10};
 String[] b = new String[]{"a","A","B","-3","x","X","D","Cra","AB","3"};
 java.util.Arrays.sort(a);
 java.util.Arrays.sort(;
 for(int i=0;i<a.length;i++)
  System.out.println(a[i]);
 System.out.println("-------------");
 for(int j=0;j<b.length;j++)
  System.out.println(b[j]);
}
}

Qualquer duvida entre na documentacao do jsdk no site sun.com e veja direitinho as apis da classe java.util.Arrays

Com ela você consegue ordenar tudo quanto é tipo de dado.

Dá uma verificada lá, já tem tudo pronto.

Abraços.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!