0 calificaciones0% encontró este documento útil (0 votos)
99 vistas2 páginas
El método de intercalación o mezcla (merge) permite ordenar dos vectores ya ordenados A y B en un tercer vector ordenado. El algoritmo compara los primeros elementos de A y B y coloca el menor en la posición inicial del vector resultado, luego compara el siguiente elemento del vector que contenía al elemento menor con el siguiente de la otro vector, repitiendo el proceso hasta completar los elementos de los vectores de entrada.
El método de intercalación o mezcla (merge) permite ordenar dos vectores ya ordenados A y B en un tercer vector ordenado. El algoritmo compara los primeros elementos de A y B y coloca el menor en la posición inicial del vector resultado, luego compara el siguiente elemento del vector que contenía al elemento menor con el siguiente de la otro vector, repitiendo el proceso hasta completar los elementos de los vectores de entrada.
El método de intercalación o mezcla (merge) permite ordenar dos vectores ya ordenados A y B en un tercer vector ordenado. El algoritmo compara los primeros elementos de A y B y coloca el menor en la posición inicial del vector resultado, luego compara el siguiente elemento del vector que contenía al elemento menor con el siguiente de la otro vector, repitiendo el proceso hasta completar los elementos de los vectores de entrada.
Cuando se dispone de dos vectores ya ordenados y se desea obtener
un tercer vector tambin ordenado, se puede realizar la ordenacin con un mtodo denominado Mezcla (Merge en ingles). Supongamos que A es un vector ordenado de m elementos y es otro vector ordenado de n elemetos. !a operacin de mezcla producir" un nuevo vector de m # n elementos. $l mtodo m"s sencillo, pero menos e%caz, consiste en colocar una lista detr"s de la otra y luego ordenarla. Sin embargo este mtodo no aprovec&a la propiedad de que los vectores A y ya est"n ordenados, por ello debe recurrir normalmente al sistema de mezcla el cual cosiste en comparar los dos primeros elementos de los vectores (A y ) y enviar al menor al tercer vector, continuando con el elemento comparado pero no enviado con el siguiente elemento del vector que contiene al elemento menor comparado anteriormente y as' sucesivamente. (na vez que se terminaron los elementos de un vector, se procede a vaciar los elementos restantes del otro vector. Algoritmo: m=tamao del vector1 n=tamao del vector2 int m,n,i=0,j=0,k=0,p; while( i < m && j < n ! i"( vec1#i$ <= vec2#j$ ! me%cla#k$=vec1#i$; i&&; ' el(e! me%cla#k$=vec2#j$; j&&; ' k&&; ' i"( i)= m! "or( p=j; p < n; p&&! me%cla#k$=vec2#p$; k&&; ' ' i"( j)=n ! "or( p=i; p < m; p&& ! me%cla#k$=vec1#p$; k&&; ' ' m n i j k p vec1[i] vec2[j] mezcla[k] vec2[p] vec1[p] inicio 1 3 5 *ector1 2 4 6 8 *ector2 Vector Mezcla + , 0 0 0 1 2 1 - - .n(erta 1 1 0 1 + 2 2 - - .n(erta 1 2 1 1 2 + , + - - .n(erta 1 2 + 2 1 + / , , - - .n(erta 1 2 + , 2 2 , / 0 / - - .n(erta 1 2 + , / + 2 / 2 - - 0 0 - .n(erta 1 2 + , / 0 - - 0 + - - 1 1 - 2rdenado 1 2 + , / 0 1 - - 3 , - - - - - - - - - - - - -