El algoritmo de combinación de combinación para listas ordenadas (combinación de combinación, combinación de combinación de clasificación, combinación de combinación de clasificación) es un tipo de algoritmo de combinación .
El algoritmo recibe dos tablas y una condición de unión como entrada. El resultado de su trabajo es una tabla con los resultados de la conexión.
Las tablas de entrada deben ordenarse por las columnas involucradas en la condición de combinación. La unión se realiza en un escaneo (paso a través) de cada una de las tablas de entrada. Es decir, la misma fila se lee solo una vez, lo que da una ventaja sobre la unión con bucles anidados .
Un ejemplo simple de pseudocódigo :
//necesita unir la Tabla 1 y la Tabla 2 //por condición: Tabla1.Columna1 = Tabla2.Columna2 //Para simplificar el ejemplo, supondremos que los valores en la Columna2 son únicos Tabla1.Ordenar(Columna1); Tabla2.Ordenar(Columna2); Table1.StandOnFirstRecord; Tabla 2. Mover al primer registro; Mientras que Table1.NotLastRecord y Table2.NotLastRecord { Si Tabla1.Columna1 < Tabla2.Columna2 { Table1.Ir a la siguiente entrada; } De lo contrario, si Tabla1.Columna1 = Tabla2.Columna2 { Salida (Table1.CurrentRecord, Table2.CurrentRecord); Table1.Ir a la siguiente entrada; Tabla 2. Ir a la siguiente entrada; } Else If Tabla1.Columna1 > Tabla2.Columna2 { Tabla 2. Ir a la siguiente entrada; } }