Aquí está el algoritmo en pseudocódigo (de Wikipedia):
combinación de algoritmos (A, B) es
entradas A, B: lista
lista de devoluciones
C: = nueva lista vacía
mientras que A no está vacío y B no está vacío, haga
si cabeza (A) ≤ cabeza (B) entonces
agregue la cabeza (A) a C
dejar caer la cabeza de A
más
agregue la cabeza (B) a C
dejar caer la cabeza de B
- ¿Qué entero decimal está representado por 0xE4 en una notación de complemento a dos de 8 bits?
- ¿Es justo decir que las matemáticas, la informática y la programación se encuentran en la intersección de todas las materias?
- Dada una matriz que consta de solo 0s y 1s, ¿cómo puedo encontrar la submatriz más grande que contenga solo 1s?
- ¿Qué tipo de problemas se pueden resolver instantáneamente en las computadoras?
- ¿Qué significa que un problema en informática sea NP completo?
// Por ahora, A o B está vacío. Queda por vaciar la otra lista de entrada.
mientras que A no está vacío
agregue la cabeza (A) a C
dejar caer la cabeza de A
mientras B no está vacío hacer
agregue la cabeza (B) a C
dejar caer la cabeza de B
devolver C
Aquí [matemáticas] A [/ matemáticas] y [matemáticas] B [/ matemáticas] son listas ordenadas. Tenga en cuenta que cada elemento de cada lista se referencia a lo sumo 4 veces (estoy contando “controles de vacío” como controles en la cabeza). Solo hay comparaciones, pops y copias en cada una de estas referencias.
El código no tiene otras operaciones, excepto las declaraciones de bucle, condicionales y la declaración de [math] C [/ math]. La lista [matemática] C [/ matemática] se agrega exactamente a [matemática] n [/ matemática] veces donde [matemática] n = | A | + | B | [/ matemática]. Por lo tanto, el tiempo de ejecución es como máximo proporcional a [matemáticas] 5 (| A | + | B |) [/ matemáticas] más una pequeña constante. ([matemáticas] f (n) = O (| A | + | B |) [/ matemáticas])
Por otro lado, cada elemento de cada lista se referencia al menos 3 veces. Por lo tanto, el tiempo de ejecución es al menos proporcional a [matemática] 4 (| A | + | B |) [/ matemática] más una pequeña constante. ([matemáticas] f (n) = \ Omega (| A | + | B |) [/ matemáticas])
Por lo tanto, [math] f (n) = \ theta (| A | + | B |) [/ math].