y los externos son los que sus valores estan en una memoria secundaria por lo que se asume que el tiempo que se requiere para acceder a cualquier elemento depende de la ultima posición accesada algunos tipos de ordenamiento son:
insercion directa este metodo consiste en acomodar los elementos del arreglo comparandolos desde la parte izqierda de dos en dos y si el de la posicion mas adelantada es mas pequeño se produce un intercambio y asi sucesivamente pondre un ejemplo para que sea mas entendible
A [12,23,43,1,4,56,32,60]
para implemetar el metodo comparamos las primeras dos casillas de izquierda a derecha
A[2]<A[1](23<12)=no se intercambian por que el menor sigue estando en la izquierda
A[3]<A[2](43<23)=no se intercambian por que el menor esta en el lado isquierdo
y no se comparan los anteriores ya que no se realizo cambio en la comparacion anterior
A[4]<A[3](1<43)=si se efectua un cambio ya que es menor el uno que el 43
A[3]<A[2](1<23)=se efectua cambio ya que el 1 es menor que el 23
A[2]<A[1](1<12)=se efctua cambio ya que el 1 es menor que 12
A[1,12,23,43,4,56,32,60] y el arreglo esta tomando forma se siguen realizando comparaciones
A[5]<A[4](4<43)=se efectua cambio 4 es menor que 43
A[4]<A[3](4<23)=se efectua cambio 4 menor que 23
A[3]<A[2](4<12)=se efectua cambio 4 menor que 12
A[2]<A[1](4<1)=no se efectua cambio y que 4 es myor que 1
A[1,4,12,23,43,56,32,60]
A[6]<A[5](56<43)=no se efectua cambio 56 mayor que 43 y no se realizan las comaraciones siguentes por que el valor es mas grande que el ultimo
A[7]<A[6](32<56)=se efectua cambio 32 menor que 56
A[6]<A[5](32<43)=se efectua cambio 32 menor que 43
A[5]<A[4](32<23)=no s efectua cambio 32 mayor que 23 y no se realizan las comparaciones anteriores
A[1,4,12,23,32,43,56,60] como ven el arreglo ya esta acomodado de menor a mayor pero se tiene que aser la ultima comparacion
A[8]<A[7](60<56)=no se efectua operacion 60 mayor que 56 y se acabo el ordenamiento
codigo
el ordenamiento shell mejora el ordenamiento por insercion comparando elementos separados por un espacio de varias posiciones permitiendo a dicho elemento realizar pasos mas grandes hacia su posicion esperada y se reduce los pasos multiples a espacios mas pequeños y al final es un simple ordenamiento por insercion pero ya casi esta ordenado el vector.
por ejemplo:
A[34,56,32,43,12,43,12,78]
para ordenarlo se divide el vector en 3 posciciones
34,56,32
43,12,43
12,78
ahora ordenamos cada columna por metodo de insercion
12,12,32
34,56,43
43,78
ahora reagrupamos el vector y nos queda
A[12,12,32,34,56,43,43,78]
solo usmos un ultimo paso que es usando metodo de insercion pero si notan ya casi esta acomodado el vetor
A[12,12,32,34,43,43,56,78]
y listo ese es el metodo de shell que es mas eficiente que los dos anteriores sobretodo cuando se trata de vectores muy largos
metodo de quick sort:
es el metodo mas eficiente de todos los anteriores es una mejora de el metodo de intercambio directo y su nombre lo recibe gracias a la velocidad con la cual ordena los elementos del arreglo, su funcionamiento es tomar un valor el que sea como termino medio para comenzar se trata de colocr en su lugar correcto de tal forma que los elementos a la izquierda sean menores y los de la derecha mayores se repiten los pasos pero ahora para los datos de la izquierda por separado de los de la derecha a que sabemos que son los mas chicos a la izquierda y los mas grandes a la derecha.
ejemplo:
A[23,45,12,65,45]
tomamos un numero al azar que sea x, por ejemplo 12
y comparamos de derecha a izquierda
45>=12= no hay intercambio
65>=12=no hay intercambio
ahora de izquierda a derecha
23<=12=si hay intercambio
y nos queda A[12,23,45,65,45]
como el numero que usamos ya se encuentra en su lugar seguimos comparando con el numero siguiente 23 y empezamos de derecha a izquierda
45>=23=no hay intercambio
65>=23=no hay intercambio
45>=23=no hay intercambio
cambiamos de numero inicial al que sigue 45 y comparamos de derecha a izquierda
45>=45=no hay intercambio
65>=45=no hay intercambio
cambiamos de numero inicial 65 comparamos derecha a izquierda
45>=65=si hay intercambio
y terminamos y el vector resultante es:
A[12,23,45,45,65]
bueno esto es todo por mi parte las fuentes de consulta que realize fueron:
http://sistemas.itlp.edu.mx/tutoriales/estructdatos2/tema2_2.htm
http://www.monografias.com/trabajos/algordenam/algordenam.shtml
http://latecladeescape.com/con-nombre-propio/ordenacion-por-insercion-directa-insertionsort.html
http://es.wikipedia.org/wiki/Ordenamiento_Shell
http://www.angelfire.com/wy2/est_info/quicksort.html
Bien; 6.
ResponderEliminar