Bennu Game Development

Foros en Español => Mesa de Ayuda => Mensaje iniciado por: Fede en Octubre 05, 2010, 09:27:48 pm

Título: Ordenando arrays.
Publicado por: Fede en Octubre 05, 2010, 09:27:48 pm
Buenaaaas.

Estoy liado con un explorer para wiz/canoo y ando por la parte de presentación de la lista de ficheros por pantalla.

¿Hay alguna manera de ordenar una tabla indicándole si es ascendente o descendente? Conozco sort, ksort y quicksort, y creo que ninguna lo hace.

Si es que sí... ¿y un rango de la tabla?

Y el más difícil todavía: ¿Y ordenarla por diversos campos?

Ejemplo de esto último:

En una tabla[10][10][10] Ordenar por la primera dimensión, luego dentro de esa primera dimensión, ordenar por la segunda y por último por la tercera.

Gracias y saludos.
Título: Re: Ordenando arrays.
Publicado por: Danielo515 en Octubre 05, 2010, 09:49:44 pm
Citar
Sorts an array by the Quicksort ordering algorithm.
This function is very handy for user defined types for elements in which a sort-variable is present.

De lo que deduzco que qicksort SÍ ORDENA arrays. Ahora arrays multidiemsionales no se. Tal vez podrías hacer que ordenase cada dimensión como un array y luego ordenar cada uno.

De todos modos ¿como pretendes ordenar por distintos campos?
Explicalo mejor plis.

Es importante saber si lo que quieres ordenar son strings, enteros, o tipos de datos tuyos.
Título: Re: Ordenando arrays.
Publicado por: Drumpi en Octubre 05, 2010, 11:22:17 pm
Exacto, porque si no, mucho me temo que te toca implementar los algoritmos a manita. Es lo que nos pasa por ser programadores, tenemos que picar código para las cosas más "tontas" ^^U
Título: Re: Ordenando arrays.
Publicado por: Fede en Octubre 06, 2010, 05:30:03 am
Tengo que acostumbrarme a hacer las preguntas de una en una.  ;D

Centrémonos en la primera:

¿Hay alguna manera de ordenar una tabla indicándole si es ascendente o descendente? Sin tener que implementarlo yo, se entiende.  ;D

Es porque no veo el modo de hacerlo con sort, ksort y quicksort.

Muuuuuuuchas gracias.
Título: Re: Ordenando arrays.
Publicado por: FreeYourMind en Octubre 06, 2010, 05:47:13 am
Si que se puede, yo me acuerdo de hacerlo, por la tarde te lo miro, tienes el bubbleshort tambien.
Hay un post u otro con estos algoritmos por aqui, buscalos.
Título: Re: Ordenando arrays.
Publicado por: Fede en Octubre 06, 2010, 09:11:15 am
Gracias compi. A rebuscar.

EDITO

¿La bubleshort no es nativa de bennu, verdad?
Título: Re: Ordenando arrays.
Publicado por: FreeYourMind en Octubre 06, 2010, 10:07:57 am
Es un algoritmo como los otros, inventados por matematicos barbudos hace años  ;D
Título: Re: Ordenando arrays.
Publicado por: FreeYourMind en Octubre 06, 2010, 10:10:05 am
Si es que os tengo que dar toda la papilla :)

http://cg.scs.carleton.ca/~morin/misc/sortalg/ (http://cg.scs.carleton.ca/~morin/misc/sortalg/)
Título: Re: Ordenando arrays.
Publicado por: Fede en Octubre 06, 2010, 11:11:51 am
Free, me saturaaaaaas.  ;D
Título: Re: Ordenando arrays.
Publicado por: Windgate en Octubre 06, 2010, 12:28:30 pm
El algoritmo de ordenación de un vector, ascendente o descendente, es muy sencillo de implementar por tí mismo.

Otra cosa es el algoritmo quick short que en teoría es el más rápido pero algoritmicamente es un truño de implementar.
Título: Re: Ordenando arrays.
Publicado por: Drumpi en Octubre 06, 2010, 06:16:04 pm
Según mi profe de Métodos Numéricos (alabado sea :D) existen métodos más rápidos de buscar la posición de un dato que el de bipartición, por ejemplo, aproximando, en lugar de en dos mitades cada vez, en mitades de tamaños logarítmicos.
Pero claro, si bipartición es difícil de implementar, si le añadimos exponenciales... :D

Nah, QSort es el que más se usa por su velocidad y sencillez, al menos, es el más famoso.