miércoles, 21 de abril de 2010

¿Cómo ordenar números con un árbol binario?

Supongamos que tenemos una lista de números naturales desordenados y los tenemos que ordenar. ¿Cómo hacerlo de forma práctica? Pues hay muchas formas aunque parezca extraño. Vamos a ver una forma usual, como lo hace un ordenador, la ordenación binaria.
Supongamos que tenemos la lista siguiente: {23,43,25,24,33,42,22,41,44,56,12,10}
Vamos tomando los números según están en la lista. Empieza el 23, a continuación se toma el 43 y se compara con el 23. Como es mayor se pone a su derecha--->{23,43}. A continuación viene el 25, se compara con el 23 y debe de ir a su derecha, ahí está el 43, como 25 es menor que 43 debe de estar a su izquierda, y la lista que se va ordenando queda --->{23,25,43}. Procedemos así con cada nuevo número, se compara con el primero, si es menor se pone a la izquierda, si es mayor se mira el siguiente de la derecha y se vuelve a comparar, si es menor se queda a la izquierda y si es mayor se pasa a comparar con el siguiente de la derecha, y así sucesivamente. Si no hay más números a la derecha se deja el número de último.

23--->{23}
43--->{23,43}
25--->{23,25,43}
24--->{23,24,25,43}
33--->{23,24,25,33,43}
42--->{23,24,25,33,42,43}
22--->{22,23,24,25,33,42,43}
41--->{22,23,24,25,33,41,42,43}
44--->{22,23,24,25,33,41,42,43,44}
56--->{22,23,24,25,33,41,42,43,44,56}
12--->{12,22,23,24,25,33,41,42,43,44,56}
10--->{10,12,22,23,24,25,33,41,42,43,44,56}

¿Cuántas comparaciones se han hecho? 0+1+2+2+4+5+1+6+8+9+1+1=40

No hay comentarios: