Título: problema con funcion que ordena array de tipo int Publicado por: pacosn1111 en 2 Junio 2015, 17:16 pm Hola a tod@s, me propuse escribir un programa que ordenara un array en otro array, he intentado ya de todo pero me sigue dando el mismo fallo, en vez de ordenar el array correctamente me genera un "222222222".
El código fuente es este: Código
Gracias de antemano. Saludos. Título: Re: problema con funcion que ordena array de tipo int Publicado por: DarK_FirefoX en 2 Junio 2015, 19:00 pm No entiendo para que te complicas, puedes mejor hacer una copia el array original y ordenar esta copia utilizando cualquier algoritmo de ordenación.
Salu2s Título: Re: problema con funcion que ordena array de tipo int Publicado por: pacosn1111 en 2 Junio 2015, 20:38 pm No entiendo para que te complicas, puedes mejor hacer una copia el array original y ordenar esta copia utilizando cualquier algoritmo de ordenación. Salu2s Ya así es mucho más facil pero quería practicar algoritmia hasta que me he quedado atascado un buen rato aquí. Título: Re: problema con funcion que ordena array de tipo int Publicado por: pacosn1111 en 3 Junio 2015, 10:00 am Por favor ayuda, tengo mucha curiosidad por resolver el problema.
Título: Re: problema con funcion que ordena array de tipo int Publicado por: rir3760 en 3 Junio 2015, 17:17 pm tengo mucha curiosidad por resolver el problema. Al parecer tratas de implementar el algoritmo de ordenacion por selección o InsertSort pero me temo que hay bastantes errores, algunos de estos son:* No descartas el menor en cada iteración. * Ignoras los repetidos al ordenar cuando, en el mejor escenario, deberías eliminar los repetidos después del elemento (lo mas sencillo es simplemente ordenar la lista y solo entonces ignorar repetidos). * En todos los bucles menos el primero tienes una iteración de mas, por ejemplo: Código Hay que eliminar el "+ 1" de todos esos bucles. Bueno, en realidad hay que cambiar de forma significativa los bucles acorde a la forma correcta del algoritmo. * En las dos ultimas funciones tratas de calcular el numero de elementos en el array mediante sizeof, esto no es posible ya que toda función declarada en la forma: Código Se procesa como si la declaracion fuera: Código En su lugar modifica las funciones para que acepten un argumento adicional, por supuesto este es el numero de elementos del array. Una explicación a detalle pero en ingles del algoritmo es The Selection Sort (http://courses.cs.vt.edu/~csonline/Algorithms/Lessons/SelectionSort/index.html), una mas cortesía de Wikipedia: Selection sort (http://en.wikipedia.org/wiki/Selection_sort) Un saludo Título: Re: problema con funcion que ordena array de tipo int Publicado por: pacosn1111 en 4 Junio 2015, 09:06 am Al parecer tratas de implementar el algoritmo de ordenacion por selección o InsertSort pero me temo que hay bastantes errores, algunos de estos son: * No descartas el menor en cada iteración. * Ignoras los repetidos al ordenar cuando, en el mejor escenario, deberías eliminar los repetidos después del elemento (lo mas sencillo es simplemente ordenar la lista y solo entonces ignorar repetidos). * En todos los bucles menos el primero tienes una iteración de mas, por ejemplo: Código Hay que eliminar el "+ 1" de todos esos bucles. Bueno, en realidad hay que cambiar de forma significativa los bucles acorde a la forma correcta del algoritmo. * En las dos ultimas funciones tratas de calcular el numero de elementos en el array mediante sizeof, esto no es posible ya que toda función declarada en la forma: Código Se procesa como si la declaracion fuera: Código En su lugar modifica las funciones para que acepten un argumento adicional, por supuesto este es el numero de elementos del array. Una explicación a detalle pero en ingles del algoritmo es The Selection Sort (http://courses.cs.vt.edu/~csonline/Algorithms/Lessons/SelectionSort/index.html), una mas cortesía de Wikipedia: Selection sort (http://en.wikipedia.org/wiki/Selection_sort) Un saludo Gracias, me ha servido de mucho :) |