Dúvida Cruel, só vendo msm

Oi pessoal, então, estou fazendo um programa para resolver o problema da mochila, muitos devem conheçer aqui, e preciso usa um heap binário para resolver isso, utilizando genéricos, então esse código é o binary heap que irá ordenar meu vetor de objetos, cada objeto é um item, e cada item possui uma string que o identifica, um valor e um peso, para poder comparar se um objeto vale mais ow menos que o outro, tenho que dividir o seu valor pelo seu peso, só que não sei como fazer isso com o compareTo, na classe maxHeapify há a comparação if (v[max].compareTo(v[pos]) > 0), sei que se for maior que 0 significa que o valor v[max] é maior do que v[pos] e então farei a troca, seria possível fazer if (v[max].x.compareTo(v[pos].x) > 0) onde x = valor/peso ?
Alguém me help aahuHUA =) vlw

[code]public static <T extends Comparable> void heapSort(T[] v)
{
buildMaxHeap(v);
int n = v.length;

    for (int i = v.length - 1; i > 0; i--) {
        swap(v, i, 0);
        maxHeapify(v, 0, --n);
    }
}

private static <T extends Comparable<T>> void buildMaxHeap(T v[]) 
{
    for (int i = v.length / 2 - 1; i >= 0; i--)
        maxHeapify(v, i, v.length);
}

private static <T extends Comparable<T>> void maxHeapify(T[] v, int pos, int n) 
{
    int max = 2 * pos + 1, right = max + 1;

    if (max < n) {
        if (right < n && v[max].compareTo(v[right]) < 0)
            max = right;
        if (v[max].compareTo(v[pos]) > 0) 
    {
	swap(v, max, pos);
            maxHeapify(v, max, n);
        }
    }
}

public static <T extends Comparable<T>> void swap(T[] v, int j, int aposJ) {
    T aux;
    aux = v[j];
    v[j] = v[aposJ];
    v[aposJ] = aux;
}[/code]

Jd, não entendi bem sua pergunta. Não basta calcular Valor/Peso antes de chamar o compareTo??

Ola Jd,

Nos proximos topicos procure colocar no titulo algo que tenha a ver com a duvida. Evite titulos como esse que criou.

[]'s