Exercício de ordenação sem usar Collections

6 respostas
I

Olá pessoa, acho que o título do post já diz tudo hehehehe.

Tava resolvendo um exercício e o enunciado era para ordenar uma lista contendo objetos de uma classe, através de um atributo da classe.
Implementei da seguinte forma, e gostaria de saber o que vcs acham, se tá bom, ou poderia ser melhor!

Classe a ser ordenada a partir do atributo saldo:

public class Pessoa {
    public  String nome;
    public double saldo;
    public Pessoa (String n, double s) {
        nome = n;
        saldo = s;
    }

    public double getSaldo() {
        return saldo;
    }
}

Método para a ordenação, de acordo com o saldo.

public List<Pessoa> ordenaPorSaldo(List<Pessoa> lista) {
        List<Pessoa> listaAux = new ArrayList<Pessoa>();

        int tamanho = lista.size();
        for (int i = 0; i < tamanho; i++) {
            listaAux.add(obtemMenorSaldo(lista));
        }
        return listaAux;
    }

    private Pessoa obtemMenorSaldo(List<Pessoa> lista) {
        double menor = Double.MAX_VALUE;
        int pos = 0;

        for (int i = 0; i < lista.size(); i++) {
            if (lista.get(i).getSaldo() < menor) {
                menor = lista.get(i).getSaldo();
                pos = i;
            }
        }

        Pessoa p = lista.get(pos);
        lista.remove(pos);
        return p;
    }

Sei que a Collections usa o mergeSort para fazer a ordenação, mas ia ficar complicado fazer de cabeça hehe.

Vlw!

6 Respostas

tveronezi

Dá uma olhada em “Comparable”
http://docs.oracle.com/javase/tutorial/collections/interfaces/order.html

I

tveronezi:
Dá uma olhada em “Comparable”
http://docs.oracle.com/javase/tutorial/collections/interfaces/order.html

Não é para usar Comparable, Comparator nem Collections.sort();

nel

Qual foi sua base ? O algoritmo Bubble sort ?

xandevieira
I

Oi Nel, na verdade não usei nenhum algoritmo de ordenação como base, nem quick, nem merge, nem select, nem bubble nem nada.
Apenas implementei uma ordenação sem nada como base.

I

mas se bem que até ficou parecido com o bubble né hahahah

Criado 22 de agosto de 2012
Ultima resposta 22 de ago. de 2012
Respostas 6
Participantes 4