none
Ordenamiento HeapSort para una List<T>

    Question

  • Tengo el siguiente problema académico.

    Tengo que implementar el algoritmo HeapSort para ordenar una List<T>  donde T seria la información de un estudiante (ID, Nombre y Apellido)

    Lo que sucede es que no tengo idea de como hacer para comparar el ID entre nodos, por ejemplo:

    listaEstudiante[a].ID >= listaEstudiante[b].ID

    Actualmente tento tres clases:

    TemplateLista, con 2 metodos (agregar e imprimir la lista)

    Estudiante: Que la uso unicamente como entidad para representar las variables (ID, nombre y apellido)

    HeapSort: donde implemento los metodos de ordenamiento del algoritmo

    Si me pudieran orientar de como hacerlo, se los agradezco

     

    Thursday, February 10, 2011 8:22 PM

Answers

  • Explicame algo, lo que guardas en listaEstudiantes son objetos estudiantes que contienen los datos de cada uno de ellos verdad?

    las listas se recorren por indice, y lo que hacen es acceder al objeto (en este caso Estudiante) que hay en esa posición y de ahí obtienes los datos de este.. algo como esto:

    int j=1;

    for(int i=0; i<listaEstudiantes.count; i++)

    {

      if(ListaEstudiantes[i].ID==ListaEstudiantes[j].ID) // fijate que la i y la J son solo indices

    {

    //haces lo que necesitas

    }

    j++;

    }

    Disculpa por el ejemplo, pero ya estoy saliendo del trabajo y no se me ocurría nada ;-)

    o sea accedes a la posición donde guardaste el objeto, y de este obtienes lo que necesitas.... Creo que lo primero seria aclarar esto, el ordenamiento por heapSort no es complejo, puedes encontrar el algoritmo en cualquier lugar usando el amigo google

    :-) solo tienes que adaptarlo a tu situación... Disculpa si te explique algo que no preguntabas, es que no comprendo bien el objeto de la pregunta. Saludos

    Thursday, February 10, 2011 8:32 PM