Ordenamiento de nombres en C#

Iniciado por BardoArmas, 24 Noviembre 2018, 05:46 AM

0 Miembros y 1 Visitante están viendo este tema.

K-YreX

Cita de: CalgaryCorpus en 24 Noviembre 2018, 16:20 PM
Parece mejor hacer una funcion que compare y solo 1 intercambio, algo asi como:
if( mayor( student1, student2 ) ) {
     // intercambiar
}

Sugiero corregir la funcion de ordenamiento que al parecer le falta un ciclo al interior del que ya esta, sino no va a ordenar completamente el arreglo.

Exacto con una función puedes modularizar el programa para no hacerlo como lo he hecho en el código de ejemplo, claro que yo lo había hecho para dar la idea de como ordenar por eso no he creado una función auxiliar.
Y a qué te refieres con que le falta un ciclo? No lo veo.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

CalgaryCorpus

Ordenar es un problema clasico. Mira como ordenar un arreglo y veras que se hace con 2 ciclos, no con 1, a menos que me estoy saltando un detalle que no veo.
Aqui mi perfil en LinkedIn, invitame un cafe aqui

K-YreX

Es cierto, aquí al ser sólo 3 elementos ha dado la casualidad de que por el orden en que han sido introducidos con un ciclo quedan ordenados pero es cierto que faltaría otro ciclo ya que ese solo ordena el elemento <i> con el <i+1> pero no compara el <i+1> con el <i-1> para valores de <i> mayores que 0.
Es decir que tienes razón, faltaría un segundo ciclo para ordenar completamente el array si la situación en que son introducidos los elementos no es favorable, ya que en este caso sí que lo es y por eso no me había dado cuenta.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;