Ver Mensaje Individual
  #11  
Antiguo 01-12-2011
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Cita:
Empezado por fjcg02 Ver Mensaje
La verdad es que es aplastante la respuesta que ofreces, Delphius, y no admite duda.

Pero haciendo un pequeño ejercicio de coste/beneficio, y teniendo en cuenta que si se trata de un listbox no debería tener demasiados elementos... me atrevería a decir que en este caso nos cuesta más la salsa que la perdiz. Y que conste que tu respuesta es "la respuesta".

Un saludo "ordenado"
Hola, fjcg02.
Pues no comprendo tu punto. Aún siendo, y con más razón, pocos los elementos del TListBox es por lejos más preferible un simple recorrido.
Lo lógico sería pensar al revés: cuanto más elementos, convendría ordenar. ¿Para que ordenar, pocos elementos? ¿Aporta en algo? En realidad, no hay beneficio alguno. Si asumiéramos que la máquina es perfecta y tuviera siempre un valor de factor c constante, aplicar un ordenamiento consume O(n), mientras que con QuickSort en el mejor caso O(n * log n). Si hacemos cálculos, que para simplificar c = 1:
n = 10 => O(n) = 10, O(n * log n) = 10. Dif = 0
n = 100 => O(n) = 100, O(n * log n) = 200. Dif = 100
n = 1000 => O(n) = 1000, O(n * log n) = 3000. Dif = 2000

Con n menores a 10 se aprecia mejor mi planteo:
n = 5 => O(n) = 5, O(n * log n) = 3,49. Dif = 1,51
n = 2 => O(n) = 2, O(n * log n) = 0,60. Dif = 1,4
n = 1 => O(n) = 1, O(n * log n) = 0. Dif = 1

No se "gana" demasiado cuando más chico sea ¿O no? . Y como quedó demostrado, cuando mayor sea la lista más conveniente es el recorrido.
Esto demuestra que para pocos elementos se peca demasiado en esforzarse ordenarlos.

Incluso alguien se podría llegar a pensar que para el caso, para pocos elementos podríamos aprovechar burbuja mejorado. Ufff... ¡peor! Éste es O(n^2).

Si me explicas mejor tu punto...

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita