[Opinión] Metodo de ordenamiento rápido.

Iniciado por ignorantev1.1, 7 Julio 2013, 06:57 AM

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

ignorantev1.1

Hola, buenas.

Estoy realizando mi primer proyecto en Java, no decidí empezar con un "Hola mundo", ni nada por el estilo ya que contaba, anteriormente, con algunos conocimientos en programación.
Lo que pretendo hacer es gestionar datos, en miles, digamos, una relación de nombres de personas. Ya que son capturadas (o tomados de algún archivo), busco que se ordenen alfabéticamente. Por esto decidí venir a preguntar, pues me gustaría saber su opinión sobre que "método" consideran el más rápido y adecuado. Actualmente utilizo árboles binarios, es un poco lento el proceso, pero es el más adecuado, considero yo.

¿Ustedes qué opinan?

¡Saludos!

~ Yoya ~

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

ThinkByYourself

El logaritmo más eficiente de ordenación era... me parece que depende de lo que te propongas ordenar, pero echándole Imma(ginación) y Sole(dad) seguro que algo se te ocurre. Aquí algunos ejemplos a ritmo de bailes tradicionales (pa' que veas si hay tinta y no tinta al respecto... xD) Espero que te sirva! http://www.genbetadev.com/desarrolladores/algoritmos-de-ordenacion-explicados-mediante-bailes-tradicionales
No te voy a engañar.
Todos hemos sido programados para normalizar la psicopatía de las élites económicas y políticas, y para realimentar su patrón de ciega codicia.

Søra

#3
El mejor método para ordenación de números es quicksort, lo he probado como parte de un proyecto de coste de algoritmos, te dejo en el pastebin una lista con tiempos de ejecucion de varios algoritmos de ordenacion en funcion de la longitud de la tabla, de el tipo de numeros (enteros/reales) y de la ordenacion anterior ...

¿Sabes calcular el coste en tiempo de un algoritmo?
Básicamente el coste en tiempo del método quick sort es O(n*log(n)) mientras que el de otro
como el de seleccion es de O(n*n), con n=T.length

De todos modos el coste en memoria sera mayor el del recursivo porque el orden del quicksort es O(n*n) y el de los no recursivos de O(n), pero vamos que en memoria no te importe porque como mucho te dara un stavkoverflow pero deberías de trabajar con millones de datos asique... nose si algun dia trabajas con muchísimos millones de datos es posible que el quicksort pete tu ordenador pero millones millones...

Un saluuudo!
Documentacion sobre coste de algoritmos here.





Se busca sabio para intercambio:
Todo lo que se por la mitad de lo que desconozco.

ignorantev1.1

No es sobre números, ordenaré cadenas de caracteres, las repetidas no entrarán. :)

Voy a pegarle una revisada a la cuestión de las colecciones.

Saludos


Slider324

para los repetidos podrias usar HashSet saludos  :xD

DarkSorcerer

Te dare algo para investigar

Investiga acerca del metodo "compareTo"