Autor Tema: Ordenando arrays.  (Leído 1735 veces)

Fede

  • Hero Member
  • *****
  • Mensajes: 1531
  • Karma: 71
  • Buen ambiente, buen karma.
Ordenando arrays.
« 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.
« última modificación: Octubre 05, 2010, 09:29:36 pm por Fede »
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

  • Sr. Member
  • ****
  • Mensajes: 480
  • Karma: 4
    • Blog del Blogbo
Re: Ordenando arrays.
« Respuesta #1 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.

Drumpi

  • Hero Member
  • *****
  • Mensajes: 6338
  • Karma: 162
  • Odio el periodo "entre proyectos"
    • La web de Drumpi
Re: Ordenando arrays.
« Respuesta #2 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
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

  • Hero Member
  • *****
  • Mensajes: 1531
  • Karma: 71
  • Buen ambiente, buen karma.
Re: Ordenando arrays.
« Respuesta #3 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.
« última modificación: Octubre 06, 2010, 05:31:43 am por Fede »
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

  • Hero Member
  • *****
  • Mensajes: 5681
  • Karma: 128
    • GECA soft
Re: Ordenando arrays.
« Respuesta #4 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.

Fede

  • Hero Member
  • *****
  • Mensajes: 1531
  • Karma: 71
  • Buen ambiente, buen karma.
Re: Ordenando arrays.
« Respuesta #5 en: Octubre 06, 2010, 09:11:15 am »
Gracias compi. A rebuscar.

EDITO

¿La bubleshort no es nativa de bennu, verdad?
« última modificación: Octubre 06, 2010, 09:16:10 am por Fede »
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

  • Hero Member
  • *****
  • Mensajes: 5681
  • Karma: 128
    • GECA soft
Re: Ordenando arrays.
« Respuesta #6 en: Octubre 06, 2010, 10:07:57 am »
Es un algoritmo como los otros, inventados por matematicos barbudos hace años  ;D

FreeYourMind

  • Hero Member
  • *****
  • Mensajes: 5681
  • Karma: 128
    • GECA soft
Re: Ordenando arrays.
« Respuesta #7 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/

Fede

  • Hero Member
  • *****
  • Mensajes: 1531
  • Karma: 71
  • Buen ambiente, buen karma.
Re: Ordenando arrays.
« Respuesta #8 en: Octubre 06, 2010, 11:11:51 am »
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

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: Ordenando arrays.
« Respuesta #9 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.
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

  • Hero Member
  • *****
  • Mensajes: 6338
  • Karma: 162
  • Odio el periodo "entre proyectos"
    • La web de Drumpi
Re: Ordenando arrays.
« Respuesta #10 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.
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)