🎓 Cómo usar este documento: Lee la explicación de cada bloque temático y responde las preguntas antes de pasar al siguiente. Las soluciones comentadas están al final.
La complejidad algorítmica mide cómo crece el tiempo de ejecución (o el espacio) en función del tamaño de la entrada n.
| Complejidad | Nombre | Descripción | Ejemplo |
|---|---|---|---|
| O(1) | Constante | Independiente del tamaño de la entrada | Acceso a un elemento por índice |
| O(log n) | Logarítmica | Crece muy lentamente | Búsqueda binaria |
| O(n) | Lineal | Crece proporcionalmente a n | Recorrido de una lista |
| O(n log n) | Linealítmica | Entre lineal y cuadrática | Mergesort, Heapsort, Quicksort (media) |
| O(n²) | Cuadrática | Crece con el cuadrado de n | Burbuja, Inserción, Selección |
| O(2ⁿ) | Exponencial | Crece muy rápidamente | Problemas NP (fuerza bruta) |
| O(n!) | Factorial | La más costosa | Problema del viajante (fuerza bruta) |
💡 Orden de eficiencia (de mejor a peor):
O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ) < O(n!)
1. ¿Cuál de las siguientes complejidades es la más eficiente?
2. Un algoritmo de búsqueda binaria tiene una complejidad de:
3. Los algoritmos básicos de ordenación (burbuja, inserción, selección) tienen una complejidad de:
Algoritmos de ordenación
├── Básicos — O(n²)
│ ├── Ordenación por selección
│ ├── Ordenación por inserción
│ └── Ordenación por burbuja (intercambio directo)
├── Eficientes — O(n log n)
│ ├── Mergesort
│ ├── Quicksort (O(n²) en peor caso)
│ ├── Heapsort
│ └── Shellsort
└── Casos especiales
└── Binsort / Bucket sort — O(n) bajo ciertas condiciones
💡 Algoritmo estable: mantiene el orden relativo de los elementos con clave repetida. Inestable: no lo garantiza.
💡 Ordenación interna: en memoria principal (acceso aleatorio). Ordenación externa: en memoria secundaria (restricciones de acceso).
Idea: En cada iteración, selecciona el menor elemento del subvector no ordenado y lo intercambia con el primero de ese subvector.
| Métrica | Valor |
|---|---|
| Comparaciones | N²/2 |
| Intercambios | N |
| Complejidad | O(n²) |
Idea: En cada iteración, inserta un elemento del subvector no ordenado en la posición correcta del subvector ya ordenado.
| Métrica | Valor |
|---|---|
| Comparaciones (media) | N²/4 |
| Intercambios (media) | N²/8 (el doble en peor caso) |
| Complejidad | O(n²) — pero casi lineal para conjuntos casi ordenados |
Idea: Los elementos más ligeros "ascienden" hacia arriba. Compara pares adyacentes e intercambia si están desordenados.
| Métrica | Valor |
|---|---|
| Comparaciones | N²/2 |
| Intercambios | N²/2 |
| Complejidad | O(n²) — lineal en versión mejorada si ya está ordenado |
💡 Mejora de la burbuja: usar un centinela que detecte si no hubo intercambios en una pasada → terminar anticipadamente.
Idea: Dividir el conjunto en dos mitades, ordenar recursivamente cada mitad y combinar las dos mitades ordenadas.
Mergesort
1. Dividir el vector en dos mitades → O(1)
2. Ordenar recursivamente cada mitad → 2T(n/2)
3. Combinar (mezclar) las dos mitades → O(n)
Recurrencia: T(n) = 2T(n/2) + n → T(n) ∈ O(n log₂ n)
| Característica | Valor |
|---|---|
| Complejidad | O(n log n) — siempre, en todos los casos |
| Espacio extra | O(n) — necesita array auxiliar |
| Estabilidad | ✅ Estable |
Idea: Elegir un pivote, dividir el vector de forma que los menores queden a la izquierda y los mayores a la derecha, y ordenar recursivamente cada parte.
Quicksort
1. Elegir un pivote (p)
2. Partir el vector: elementos < p | p | elementos > p
3. Ordenar recursivamente cada parte
| Caso | Complejidad |
|---|---|
| Peor caso (pivote siempre el mínimo/máximo) | O(n²) |
| Caso equilibrado (pivote = mediana) | O(n log n) |
| Promedio | O(n log n) |
⚠️ Dato clave: Quicksort tiene O(n²) en el peor caso pero es muy eficiente en la práctica.
Idea: Construir un árbol parcialmente ordenado (heap) e ir extrayendo el máximo/mínimo sucesivamente.
Heapsort — O(n log n) siempre
1. Construcción inicial del heap:
n inserciones O(log n) → O(n log n)
2. Extracción del mayor elemento:
n extracciones O(log n) → O(n log n)
Total: O(n log n)
Idea: Mejora de la ordenación por inserción creada por Donald Shell (1959). Compara elementos separados por varias posiciones y en pasadas con saltos cada vez menores ordena el vector.
| Algoritmo | Complejidad |
|---|---|
| Inserción | O(n²) |
| Shellsort | O(n log²n) |
| Algoritmo | Mejor caso | Caso medio | Peor caso | Estable | Extra |
|---|---|---|---|---|---|
| Selección | O(n²) | O(n²) | O(n²) | ❌ | O(1) |
| Inserción | O(n) | O(n²) | O(n²) | ✅ | O(1) |
| Burbuja | O(n) | O(n²) | O(n²) | ✅ | O(1) |
| Mergesort | O(n log n) | O(n log n) | O(n log n) | ✅ | O(n) |
| Quicksort | O(n log n) | O(n log n) | O(n²) | ❌ | O(log n) |
| Heapsort | O(n log n) | O(n log n) | O(n log n) | ❌ | O(1) |
| Shellsort | O(n log n) | O(n log²n) | O(n²) | ❌ | O(1) |
💡 Timsort: combinación de Mergesort + Inserción. Es el algoritmo usado en Python y Java en la práctica.
4. ¿Cuál es la complejidad de Mergesort en el peor caso?
5. ¿Cuál es la complejidad de Quicksort en el peor caso?
6. ¿Qué algoritmo de ordenación fue creado por Donald Shell en 1959 como mejora de la ordenación por inserción?
7. ¿Cuál de los siguientes algoritmos de ordenación es estable y tiene complejidad O(n log n) en todos los casos?
8. La ordenación por inserción tiene un comportamiento casi lineal cuando:
9. ¿Qué algoritmo de ordenación combina Mergesort con ordenación por inserción?
Un grafo es una estructura de datos formada por vértices (nodos) y aristas (edges) que los conectan.
Tipos de grafos
├── Dirigido → las aristas tienen dirección (→)
├── No dirigido → las aristas no tienen dirección
├── Ponderado → las aristas tienen peso (coste)
└── No ponderado → las aristas no tienen peso
| Algoritmo | Objetivo principal | Tipo de grafo | Pesos | Complejidad | Uso recomendado |
|---|---|---|---|---|---|
| BFS (Búsqueda en Anchura) | Ruta más corta en grafos no ponderados | Dirigido o no dirigido | No ponderado | O(V + E) | Rutas cortas sin pesos. Conectividad. |
| DFS (Búsqueda en Profundidad) | Detectar ciclos, componentes, orden topológico | Dirigido o no dirigido | No ponderado | O(V + E) | Ciclos, componentes conectados, orden topológico. |
| Dijkstra | Ruta más corta desde un origen | Dirigido o no dirigido | No negativos | O((V+E) log V) | Rutas más cortas con aristas no negativas. |
| Bellman-Ford | Ruta más corta desde un origen | Dirigido o no dirigido | Negativos permitidos | O(VE) | Rutas con posibles aristas negativas. |
| Floyd-Warshall | Rutas más cortas entre todos los pares | Dirigido o no dirigido | Negativos (sin ciclos neg.) | O(V³) | Todos los pares de vértices. |
| Prim | Árbol de Expansión Mínima (MST) | No dirigido | Positivos | O(E log V) | Diseño de redes con coste mínimo. |
| Kruskal | Árbol de Expansión Mínima (MST) | No dirigido | Positivos | O(E log V) | Como Prim; más eficiente en grafos dispersos. |
| Kosaraju | Componentes fuertemente conectados | Dirigido | No ponderado/ponderado | O(V + E) | Análisis de estructura de grafos dirigidos. |
| Tarjan | Componentes fuertemente conectados | Dirigido | No ponderado/ponderado | O(V + E) | Como Kosaraju; mejor eficiencia en memoria. |
| Ford-Fulkerson | Flujo máximo en una red | Dirigido con capacidad | Positivos | O(Ef) | Flujo máximo: transporte, tuberías. |
| Edmonds-Karp | Flujo máximo (impl. de Ford-Fulkerson con BFS) | Dirigido con capacidad | Positivos | O(VE²) | Flujo máximo; mejora sobre Ford-Fulkerson. |
💡 V = número de vértices, E = número de aristas, f = flujo máximo
¿Qué algoritmo uso?
Ruta más corta (sin pesos) → BFS
Ruta más corta (pesos no negativos) → Dijkstra
Ruta más corta (pesos negativos) → Bellman-Ford
Rutas más cortas TODOS los pares → Floyd-Warshall
Árbol de Expansión Mínima (MST) → Prim o Kruskal
Componentes fuertemente conectados → Kosaraju o Tarjan
Flujo máximo → Ford-Fulkerson o Edmonds-Karp
Detectar ciclos / orden topológico → DFS
| Tipo de grafo | Algoritmos aplicables |
|---|---|
| Dirigidos | BFS, DFS, Dijkstra, Bellman-Ford, Floyd-Warshall, Kosaraju, Tarjan, Ford-Fulkerson, Edmonds-Karp |
| No dirigidos | BFS, DFS, Dijkstra, Bellman-Ford, Floyd-Warshall, Prim, Kruskal |
| Ponderados | Dijkstra, Bellman-Ford, Floyd-Warshall, Prim, Kruskal, Ford-Fulkerson, Edmonds-Karp |
| No ponderados | BFS, DFS, Kosaraju, Tarjan |
10. ¿Qué algoritmo se usa para encontrar la ruta más corta en un grafo no ponderado?
11. ¿Cuál es la diferencia clave entre Dijkstra y Bellman-Ford?
12. ¿Qué algoritmo encuentra las rutas más cortas entre todos los pares de vértices?
13. Los algoritmos de Prim y Kruskal se usan para encontrar:
14. ¿Cuál es la complejidad de Floyd-Warshall?
15. ¿Para qué tipo de grafo se aplican exclusivamente los algoritmos de Prim y Kruskal?
Los árboles son estructuras de datos jerárquicas (no lineales). Sus nodos se almacenan en forma de árbol genealógico con un nodo raíz del que cuelgan los demás.
| Término | Definición |
|---|---|
| Nodo | Cada elemento que contiene el árbol |
| Nodo raíz | El primer nodo del árbol. Solo puede haber uno |
| Nodo padre | Nodo que tiene al menos un hijo |
| Nodo hijo | Nodo que tiene un padre |
| Nodo hermano | Nodos que comparten el mismo padre |
| Nodo hoja | Nodo sin hijos — siempre en los extremos |
| Nodo rama | Nodo que no es raíz y tiene al menos un hijo |
| Sub-árbol | Árbol generado a partir de una sección del árbol principal |
| Propiedad | Definición | Fórmula |
|---|---|---|
| Nivel | Generación dentro del árbol. La raíz está en el nivel 1 | nivel = nodos sobre él + 1 |
| Altura | Número máximo de niveles del árbol | max(altura(hijo1), altura(hijo2)...) + 1 |
| Peso | Número total de nodos del árbol | peso(hijo1) + peso(hijo2) + ... + 1 |
| Orden | Número máximo de hijos que puede tener un nodo | Definido en el diseño |
| Grado | Número mayor de hijos que tiene algún nodo del árbol | max(contarHijos(cada nodo)) |
⚠️ Dato clave: Un árbol vacío tiene 0 niveles. El nivel de la raíz es 1.
Tipos de árboles
├── Árbol n-ario
│ └── Cada nodo puede tener hasta N hijos
├── Árbol binario
│ ├── Cada nodo puede tener máximo 2 hijos
│ ├── Árbol binario lleno → todos los nodos tienen 0 o 2 hijos
│ └── Árbol binario perfecto → lleno + todas las hojas en el mismo nivel
💡 Los recorridos son búsquedas no informadas (a ciegas): recorren el árbol sin saber dónde está el dato buscado.
| Recorrido | Orden de visita | Mnemotecnia |
|---|---|---|
| Pre-orden | Raíz → Izquierda → Derecha | R-I-D |
| In-orden | Izquierda → Raíz → Derecha | I-R-D |
| Post-orden | Izquierda → Derecha → Raíz | I-D-R |
💡 Mnemotecnia:
- Pre = la raíz es lo primero
- In = la raíz está en medio (intermedio)
- Post = la raíz es lo último
Para reconstruir un árbol binario se necesitan dos recorridos, uno de los cuales debe ser siempre el in-orden:
Reconstrucción con In-orden + Pre-orden:
→ El In-orden se coloca horizontalmente
→ El Pre-orden se coloca verticalmente de arriba a abajo (tal cual)
→ Las intersecciones determinan la posición de cada nodo
Reconstrucción con In-orden + Post-orden:
→ El In-orden se coloca horizontalmente
→ El Post-orden se coloca en ORDEN INVERSO verticalmente (de arriba a abajo)
→ Las intersecciones determinan la posición de cada nodo
⚠️ Dato clave: Siempre se necesita el in-orden. Con pre-orden o post-orden solos no es posible reconstruir el árbol de forma unívoca.
| Tipo | Estrategia | Algoritmo |
|---|---|---|
| Búsqueda en profundidad | Explora rama a rama hasta el final antes de retroceder | DFS (Pre-orden, In-orden, Post-orden) |
| Búsqueda en amplitud | Explora nivel por nivel | BFS |
16. ¿Cómo se denomina el nodo que no tiene hijos en un árbol?
17. En un árbol, ¿cuál es el nivel de la raíz?
18. En el recorrido in-orden de un árbol binario, ¿en qué posición se visita la raíz?
19. Para reconstruir un árbol binario a partir de sus recorridos, ¿qué recorrido es imprescindible tener siempre?
20. ¿Cómo se coloca el Post-orden al reconstruir un árbol junto con el In-orden?
21. Un árbol binario perfecto se caracteriza por:
Todos los tipos de PDF se basan en estándares de la ISO (Organización Internacional de Normalización).
Variantes del formato PDF
├── PDF/A → Archivado a largo plazo
├── PDF/UA → Accesibilidad Universal
├── PDF/X → Preimpresión e intercambio gráfico
├── PDF/VT → Impresión de datos variables y transaccional
├── PDF/H → Industria sanitaria
├── PDF/E → Documentación técnica e ingeniería
└── PDF con capacidad de búsqueda → resultado de OCR
| Tipo | Acrónimo | Norma ISO | Descripción | Uso principal |
|---|---|---|---|---|
| PDF/A | Archive | ISO 19005-1 | Archivado a largo plazo. Los recursos deben estar integrados y los metadatos en formato XMP | Archivado permanente de documentos |
| PDF/UA | Universal Accessibility | — | Garantiza accesibilidad para personas con discapacidad. Define estructura de textos, imágenes, tablas y formularios | Documentos accesibles |
| PDF/X | eXchange | — (2001) | Para intercambio en preimpresión. Garantiza que no se pierda información de color o fuente | Artes gráficas e impresión |
| PDF/VT | Variable & Transactional | — (2010) | Impresión de datos variables (V) y transaccional (T). Procesa contenido recurrente eficientemente | Impresión personalizada masiva |
| PDF/H | Healthcare | — (2008) | Datos sanitarios: pacientes y hallazgos médicos. No es un estándar oficial aún | Registros médicos |
| PDF/E | Engineering | — | Documentación técnica. Soporta modelos 3D, elementos rotativos, contenido interactivo | Ingeniería y CAD |
| PDF con búsqueda | — | — | Resultado de aplicar OCR (Optical Character Recognition) a un documento escaneado | Digitalización de documentos |
| Variante | Descripción |
|---|---|
| PDF/A-1 | Nivel base. Define reproducibilidad visual clara (PDF/A-1a y PDF/A-1b) |
| PDF/A-2 | Extensión de PDF/A-1 |
| PDF/A-3 | Extensión de PDF/A-2 |
| PDF/A-4 | Extensión de PDF/A-3 |
⚠️ Requisitos PDF/A: los recursos deben estar integrados en el documento y los metadatos en formato XMP.
| Característica | Descripción |
|---|---|
| Visualización 3D | Puede incrustar modelos 3D que se pueden expandir y rotar |
| Independencia | No requiere software especial para visualizarlo |
| Metadatos | Permite incrustar autor, fecha de creación y versión |
| Coherencia | Se muestra de forma consistente en cualquier plataforma |
| Contenido interactivo | Admite marcadores, formularios e hipervínculos |
| Origen | Desarrollado para documentos CAD y planos de construcción |
22. ¿Qué tipo de PDF está diseñado para el archivado a largo plazo de documentos?
23. ¿Qué significa la UA en PDF/UA?
24. El formato PDF/X fue desarrollado en 2001 para:
25. ¿Cuál de las siguientes variantes de PDF no es un estándar oficial de la ISO?
26. Un PDF con capacidad de búsqueda es el resultado de aplicar:
27. El formato PDF/E es especialmente adecuado para:
1 → c) El orden de eficiencia de menor a mayor coste es: O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ) < O(n!). O(log n) es la segunda más eficiente, solo superada por O(1) que es constante independientemente del tamaño.
2 → b) La búsqueda binaria tiene complejidad O(log n) porque en cada paso descarta la mitad de los elementos restantes. Si hay 1.000 elementos, en ~10 pasos (log₂ 1000 ≈ 10) encuentra el resultado.
3 → c) Los algoritmos básicos de ordenación (burbuja, inserción y selección) tienen complejidad O(n²): requieren comparar cada elemento con todos los demás. Para n=1000 elementos, realizan ~1.000.000 de operaciones.
4 → b) Mergesort tiene complejidad O(n log n) en todos los casos (mejor, medio y peor). Su recurrencia T(n) = 2T(n/2) + n se resuelve en O(n log n). Es uno de sus puntos fuertes frente a Quicksort.
5 → c) El peor caso de Quicksort es O(n²), que ocurre cuando el pivote elegido siempre es el mínimo o el máximo del subvector (vector ya ordenado o inversamente ordenado). En el caso promedio es O(n log n).
6 → c) Shellsort fue creado por Donald Shell en 1959 como mejora de la ordenación por inserción. Compara elementos separados por saltos de tamaño decreciente, obteniendo una complejidad O(n log²n) en lugar de O(n²).
7 → c) Mergesort es el único algoritmo de la lista que es estable y garantiza O(n log n) en todos los casos (mejor, medio y peor). Quicksort no es estable y tiene O(n²) en el peor caso; Heapsort no es estable.
8 → b) La inserción es eficiente con vectores casi ordenados porque cuando un elemento ya está cerca de su posición correcta, requiere muy pocos desplazamientos. En ese caso se aproxima a O(n).
9 → c) Timsort es una combinación de Mergesort + Ordenación por inserción. Es el algoritmo de ordenación utilizado en Python (list.sort()) y Java (Arrays.sort()). Aprovecha las ventajas de ambos.
10 → b) BFS (Búsqueda en Anchura) es el algoritmo adecuado para encontrar la ruta más corta en grafos no ponderados, ya que explora los nodos nivel a nivel y el primero en llegar al destino lo hace por el camino más corto.
11 → b) La diferencia clave es que Dijkstra no admite pesos negativos en las aristas (se comporta incorrectamente), mientras que Bellman-Ford sí los admite y además puede detectar ciclos negativos.
12 → c) Floyd-Warshall encuentra las rutas más cortas entre todos los pares de vértices del grafo. Su complejidad es O(V³). Dijkstra solo encuentra las rutas desde un único vértice origen.
13 → c) Los algoritmos de Prim y Kruskal se usan para encontrar el Árbol de Expansión Mínima (MST, Minimum Spanning Tree), que conecta todos los nodos con el coste total mínimo. Ambos funcionan en grafos no dirigidos y ponderados.
14 → c) Floyd-Warshall tiene complejidad O(V³) porque usa tres bucles anidados sobre todos los vértices. Es el más costoso de los algoritmos de rutas más cortas, pero el único que resuelve todos los pares a la vez.
15 → b) Prim y Kruskal solo se aplican a grafos no dirigidos y ponderados. Ambos buscan el MST, que solo tiene sentido en grafos no dirigidos con pesos que representan costes.
16 → c) El nodo hoja es aquel que no tiene hijos y siempre se encuentra en los extremos de la estructura del árbol. No confundir con nodo raíz (el primero) ni nodo rama (tiene al menos un hijo y no es la raíz).
17 → b) El nivel de la raíz es 1 (la primera generación). Un árbol vacío tiene 0 niveles. El nivel de cada nodo se calcula contando los nodos que hay sobre él hasta la raíz y sumando 1.
18 → b) En el recorrido in-orden el orden es: Izquierda → Raíz → Derecha. La raíz se visita en posición intermedia. Pre-orden: Raíz primero. Post-orden: Raíz al final.
19 → c) Para reconstruir un árbol binario de forma unívoca siempre es imprescindible el in-orden. Combinado con pre-orden o post-orden, permite determinar la estructura completa del árbol.
20 → b) Al reconstruir con In-orden + Post-orden, el Post-orden se coloca en orden inverso al escrito, de arriba a abajo en el eje vertical. Si el post-orden es A-C-F-J... se colocaría ..J-F-C-A de arriba a abajo.
21 → b) Un árbol binario perfecto es aquel que es lleno (todos los nodos tienen 0 o 2 hijos) Y además todas las hojas están en el mismo nivel. Un árbol lleno no tiene por qué ser perfecto si sus hojas están en niveles distintos.
22 → c) PDF/A (Archive) es el formato diseñado para el archivado de documentos a largo plazo. Basado en la norma ISO 19005-1, requiere que los recursos estén integrados y los metadatos en formato XMP.
23 → b) UA significa Universal Accessibility (Accesibilidad Universal). PDF/UA garantiza que cualquier persona, incluidas las que tienen discapacidades, pueda acceder y usar la información del documento.
24 → c) PDF/X fue desarrollado en 2001 específicamente para el intercambio de documentos en preimpresión (artes gráficas). La X significa "intercambio" y su objetivo es garantizar que el color y las fuentes se reproduzcan fielmente.
25 → c) PDF/H (Healthcare, 2008) para la industria sanitaria no es un estándar oficial de la ISO. Sienta las bases para la conversión de registros médicos a PDF, pero actualmente no está formalmente estandarizado.
26 → b) Un PDF con capacidad de búsqueda es el resultado de aplicar OCR (Optical Character Recognition, Reconocimiento Óptico de Caracteres) a un documento escaneado o imagen, convirtiendo las imágenes de texto en texto seleccionable y buscable.
27 → c) PDF/E (Engineering) fue desarrollado para documentación técnica de ingeniería, siendo especialmente adecuado para planos de construcción y dibujos con modelos 3D que se pueden expandir o rotar dentro del propio archivo.
| Concepto | Valor / Respuesta clave |
|---|---|
| Orden de complejidad (mejor a peor) | O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ) < O(n!) |
| Búsqueda binaria | O(log n) |
| Algoritmos básicos de ordenación | O(n²) |
| Algoritmos eficientes de ordenación | O(n log n) |
| Mergesort: complejidad en todos los casos | O(n log n) — siempre |
| Mergesort: ¿es estable? | ✅ Sí |
| Mergesort: espacio extra | O(n) |
| Quicksort: peor caso | O(n²) |
| Quicksort: caso promedio | O(n log n) |
| Quicksort: ¿es estable? | ❌ No |
| Heapsort: complejidad | O(n log n) en todos los casos |
| Shellsort: creador y año | Donald Shell, 1959 |
| Timsort = | Mergesort + Inserción (Python y Java) |
| Inserción casi lineal cuando | vector casi ordenado |
| BFS: uso | Ruta más corta en grafos no ponderados |
| Dijkstra: restricción | No admite pesos negativos |
| Bellman-Ford: ventaja | Admite pesos negativos |
| Floyd-Warshall: objetivo | Rutas más cortas entre todos los pares |
| Floyd-Warshall: complejidad | O(V³) |
| Prim y Kruskal: objetivo | Árbol de Expansión Mínima (MST) |
| Prim y Kruskal: tipo de grafo | No dirigido y ponderado |
| Kosaraju y Tarjan: objetivo | Componentes fuertemente conectados (dirigidos) |
| Ford-Fulkerson / Edmonds-Karp: objetivo | Flujo máximo en redes |
| Nodo sin hijos | Nodo hoja |
| Nivel de la raíz | 1 |
| Árbol vacío: niveles | 0 |
| Altura del árbol | Número máximo de niveles |
| Peso del árbol | Número total de nodos |
| Orden del árbol | Número máximo de hijos por nodo |
| Recorrido pre-orden | Raíz → Izq → Der |
| Recorrido in-orden | Izq → Raíz → Der |
| Recorrido post-orden | Izq → Der → Raíz |
| Reconstrucción árbol binario | Siempre necesita el in-orden |
| Post-orden en reconstrucción | Se coloca en orden inverso verticalmente |
| PDF/A: uso | Archivado a largo plazo |
| PDF/A: norma | ISO 19005-1 |
| PDF/A: requisitos | Recursos integrados + metadatos en XMP |
| PDF/UA: UA significa | Universal Accessibility |
| PDF/X: X significa | eXchange (intercambio) — preimpresión |
| PDF/X: año | 2001 |
| PDF/VT: VT significa | Variable & Transactional (2010) |
| PDF/H: estado | No es estándar oficial ISO |
| PDF/E: uso | Documentación técnica + modelos 3D |
| PDF con búsqueda | Resultado de aplicar OCR |