Ordenando arrays.

Started by Fede, October 05, 2010, 09:27:48 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Fede

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.
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Danielo515

QuoteSorts 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.

Drumpi

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
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Fede

#3
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.
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

FreeYourMind

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.

Fede

#5
Gracias compi. A rebuscar.

EDITO

¿La bubleshort no es nativa de bennu, verdad?
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

FreeYourMind

Es un algoritmo como los otros, inventados por matematicos barbudos hace años  ;D

FreeYourMind


Fede

Free, me saturaaaaaas.  ;D
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Windgate

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.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Drumpi

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.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)