Ordenação de arrays

kabalo um dos teus próprios posts já contem a solução para o problema da permuta:

Código:
private static void swap(int[] a, int i, int j) {
  int temp = a[i];
  a[i] = a[j];
  a[j] = temp;
}
 
Podes criar uma classe que serve de contentor para esses valores que queres retornar.
podes dar-me um exemplo rapido de como ficava com classes? obrigado :)

Se não estiveres muito a vontade com classes podes sempre guardar esses valores num array e no final retornas esse array.
como é que eu vou colocar tudo dentro de uma array? tipo eu tenho de fazer return da variavel contador, da variavel soma e da array.. vou armazenar isso tudo numa array? armezar uma array dentro de outra? podes dar-me um exemplo simples em codigo sff? obrigado :)
 
Última edição:
Só precisas de criar uma classe com vários atributos. Em seguida, antes de fazeres return, crias uma instância dessa mesma classe com os dados que queres retornar.
Código:
public class Result
{
    private Object x;
    private Object y;
    private Object z;
 
    public Result(Object x, Object y, Object z)
    {
        this.x = x;
        this.y = y;
        this.z = z;
    }
    /* getters/setters aqui */
}
 
/* ... */
 
public Result ler()
{
     int x, y, z;
     /* ... */
     return new Result(x, y, z);
}

De qualquer das formas, o problema do teu código é que praticamente todos os teus métodos são estáticos, sem razão aparente. Se não fossem estáticos, poderias ter variáveis de instância para guardar os dados. Podes também criar várias classes, como por exemplo, uma classe para sorting. Li o teu post inicial muito na diagonal, mas penso que algo do género tornaria o teu problema bastante mais simples (tudo na mesma classe, para simplificar):

Código:
public class Shell {
 
  private double média;
  private int[] numeros;
 
  public Shell()
  {
    this.numeros = new int[50];
    /* ... */
  }
 
  private void lerSequencia()
  {
    int soma, total;
    /* altera a variável numeros; soma o que vai lendo, et cetera */
    /* verifica o valor do total, e guarda o resultado na variável de instância média */
    /* se quiseres, cria mais variáveis de instância e guarda também o total e a soma */
    this.média = soma / total;   
  }
 
  private double obterMédia()
  {
    return média;
  }
 
  private void ordena(...)
  {
    /* ... */
  }
 
  public void mostrarMenu()
  {
    /* ... */
  }
 
  public static void main(String[] args)
  {
    Shell shell = new Shell();
    shell.mostrarMenu();
  } 
}

Java é uma linguagem orientada a objectos; usem-na como tal.
 
Última edição:
Back
Topo