BLOQUE 2 - TEMA 3 - Tipos abstractos y estructuras de datos. Organizaciones de ficheros.Algoritmos. Organización de ficheros Flashcards

1
Q

Cual es la politica de acceso de una pila? (stack)

A

LIFO - Last in, first out

en las pilas, vamos ‘amontonando’ los datos, por tanto los ultimos que metemos, son los primeros que sacamos, ya que vamos ‘vaciando’ el montón

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Como se almacenan los datos en una tabla hash?

A

Almacena pares de clave-valor

notas tabla hash: La tabla de Hash guarda la información en elementos que se le conocen como “slots” o “buckets” . Cada slot puede tener varias implementaciones, aunque la más común es una lista enlazada

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Si tenemos un arbol con este aspecto… cual es el grado del nodo 50?

     50
/              \ 30              70 / \               / \ 20 40     60  80
A

2

el grado es el numero de hijos que tenemos

Nota: nivel 0 (soy la raíz) grado 2 (tengo dos hijos)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Si tenemos un arbol con este aspecto… cual es el grado del nodo 30?

     50
/              \ 30              70 / \               / \ 20 40     60  80
A

2
el grado es el numero de hijos que tenemos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Si tenemos un arbol con este aspecto… cual es el nivel de 50?

     50
/              \ 30              70 / \               / \ 20 40     60  80
A

0

El nivel de un nodo es la distancia desde la raíz al nodo (similar a la profundidad).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Si tenemos un arbol con este aspecto… cual es el nivel de 70?

     50
/              \ 30              70 / \               / \ 20 40     60  80
A

1

El nivel de un nodo es la distancia desde la raíz al nodo (similar a la profundidad).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Si tenemos un arbol con este aspecto… cual es el nivel de 60?

     50
/              \ 30              70 / \               / \ 20 40     60  80
A

2

El nivel de un nodo es la distancia desde la raíz al nodo (similar a la profundidad).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Si tenemos un arbol con este aspecto… cual es la profundidad de 40?

     50
   /     \
30      70

/ \       / \

20 40 60 80

A

2

La profundidad de un nodo es la longitud del camino desde la raíz hasta ese nodo.

PROFUNDIDAD = NIVEL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Que es el orden de un nodo?

A

El orden de un árbol es el número máximo de hijos que puede tener un nodo.

Para un árbol binario, el orden es 2.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Dado el siguiente arbol… cual seria la ruta si hacemos un PREORDEN?

                      F
              /              \
             B              G
          /      \               \
       A        D               i 
              /      \             \
             C       E            H
A

F-B-A-D-C-E-G-I-H

(RID) > raiz, izquierda, derecha

nota: (raiz, izquierda, derecha) Vamos desplazando la R, fijarse, empezando por PREORDEN (Rid), luego INORDEN (iRd), luego POSTORDEN (idR)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Dado el siguiente arbol… cual seria la ruta si hacemos un INORDEN?

                      F
              /              \
             B              G
          /      \               \
       A        D               i 
              /      \             \
             C       E            H
A

A-B-C-D-E-F-G-I-H

(IRD) > izquierda, raiz, derecha

nota: (raiz, izquierda, derecha) Vamos desplazando la R, fijarse, empezando por PREORDEN (Rid), luego INORDEN (iRd), luego POSTORDEN (idR)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Dado el siguiente arbol… cual seria la ruta si hacemos un POSTORDEN?

                      F
              /              \
             B              G
          /      \               \
       A        D               i 
              /      \             \
             C       E            H
A

A-C-E-D-B-H-I-G-F

(IDR) > izquierda, derecha, raiz

nota: (raiz, izquierda, derecha) Vamos desplazando la R, fijarse, empezando por PREORDEN (Rid), luego INORDEN (iRd), luego POSTORDEN (idR)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Que es un arbol binario?

A

Es un arbol en que cada nodo tiene como máximo dos hijos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Que es un arbol Equilibrado ? (auto-balanceable)

A

Aquel en que la diferencia de alturas de los subárboles izquierdo y derecho correspondiente a cualquier nodo del árbol no es superior a 1 (FE es -1, 0, 1)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Que es un arbol B?

A

A diferencia de los árboles binarios, los nodos en un árbol B pueden tener más de dos hijo, PERO todos los nodos hoja están al mismo nivel, lo que mantiene el árbol equilibrado

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

de qué orden es este grafo?

A —- B
| |
C —- D

A

Es de orden 4

nota: El orden de un grafo es el número o cantidad de vértices que tenga

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Si hablamos de algoritmos de ordenación, en que consiste el QuickSort?

A

Algoritmo de ordenación eficiente que utiliza la técnica de divide y vencerás para particionar la lista en sublistas menores y mayores alrededor de un pivote, ordenando recursivamente cada sublista. NO es un algoritmo estable

Pasos:
- selecciona un pivote
- Reordena la lista, de modo que a la izquierda quedan los
menores del pivote y a la derecha los mayores
- Aplica nuevamente Quicksort (pivote + particion) de manera recursiva
- Combinar los resultados

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Hablando de tecnicas de organizacion de ficheros por parte de los sistemas operativos, nombra algunos algoritmos de planificacion para acceder a los ficheros

A
  • FCFS: first come first serve
  • SSTF: shortest seek time first (selecciona el que la cabeza del disco está mas cerca, osea el que va a tardar menos en encontrar)
  • SCAN: la cabeza del disco va a un lado y cuando llega al final vuelve. va haciendo barridos
  • C-SCAN: igual que scan pero la aguja no vuelve sino que va dando vueltas

(tambien está el look y el c-look)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Recorrido IN ORDEN de este arbol

                     M
              /              \
             L              Q
          /      \               \
       K        N               R 
              /      \             \
             O       P            S
A

K, L, O, N, P, M, Q, R, S

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Que es un monticulo (heap) ?

A

Un montículo (heap) es una estructura de datos especializada que se utiliza para gestionar un conjunto de elementos de manera que el más grande (o más pequeño, dependiendo del tipo de montículo) siempre esté accesible rápidamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Que diferencia hay entre los recorridos preorden, inorden, y postorden ?

A

1) Preorder:

Visita el nodo raíz primero
Luego recorre el subárbol izquierdo
Finalmente, recorre el subárbol derecho

Orden: Raíz, Izquierda, Derecha

Ejemplo: Dado el árbol [A, B, D, E, C, F], el recorrido preorden sería A, B, D, E, C, F

2) Inorder

Recorre el subárbol izquierdo primero
Luego visita el nodo raíz
Finalmente, recorre el subárbol derecho

Orden: Izquierda, Raíz, Derecha

Ejemplo: Dado el árbol [D, B, E, A, F, C], el recorrido inorden sería D, B, E, A, F, C

3) Postorden (Postorder):

Recorre el subárbol izquierdo primero
Luego recorre el subárbol derecho
Finalmente, visita el nodo raíz

Orden: Izquierda, Derecha, Raíz

Ejemplo: Dado el árbol [D, E, B, F, C, A], el recorrido postorden sería D, E, B, F, C, A

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

En relación con los algoritmos de búsqueda. ¿Qué es un árbol recubridor mínimo?

A

Es un subconjunto de las aristas que conecta todos los vértices sin ciclos y con el costo total más bajo posible

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

En relación con los algoritmos de búsqueda. ¿Qué es un camino mínimo entre dos vértices en un árbol ponderado?

A

La ruta de menor coste entre dos vértices específicos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

En relación con los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el algoritmo de PRIM? (T)

A

Para encontrar un árbol recubridor mínimo en un grafo conexo, no dirigido y cuyas aristas están etiquetadas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de los grafos para encontrar un árbol recubridor mínimo en un grafo conexo, no dirigido y cuyas aristas están etiquetadas? (T)

A

Algoritmo de PRIM

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Según los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el algoritmo de búsqueda de KRUSKAL?

A

Para encontrar un árbol recubridor mínimo en un grafo conexo y ponderado. Es decir, busca un subconjunto de aristas que, formando un árbol, incluyen todos los vértices y donde el valor de la suma de todas las aristas del árbol es el mínimo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos para encontrar un árbol recubridor mínimo en un grafo conexo y ponderado?

A

Algoritmo de KRUSKAL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Según los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el algoritmo DIJKSTRA?

A

El algoritmo de Dijkstra, también llamado algoritmo de caminos mínimos, es un algoritmo para la determinación del camino más corto dado un vértice origen al resto de los vértices en un grafo con pesos en cada arista. No admite pesos negativos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

¿Cómo se llama el algoritmo de la teoría de grafos que determina el camino más corto dado un vértice origen al resto de los vértices en un grafo con pesos en cada arista?

A

Algoritmo de Dijkstra

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Según los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el algoritmo de BELLMAN-FORD? (T)

A

Determina el camino más corto desde un único origen en un grafo dirigido o no dirigido. Admite que alguna de las aristas sea negativa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos que determina el camino más corto desde un único origen en un grafo dirigido o no dirigido. Admite que alguna de las aristas sea negativa?

A

Algoritmo de BELLMAN-FORD

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Según los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el algoritmo FLOYD-WARSHALL? (T)

A

Determina el camino mínimo en grafos dirigidos ponderados. Encuentra el camino entre todos los pares de vértices en una única ejecución

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos que determina el camino mínimo en grafos dirigidos ponderados en una única ejecución?

A

Algoritmo de FLOYD-WARSHALL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Según los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el Algoritmo A*?

A

Encuentra, siempre y cuando se cumplan unas determinadas condiciones, el camino de menor coste entre un nodo origen y uno objetivo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos que encuentra, siempre y cuando se cumplan unas determinadas condiciones, el camino de menor coste entre un nodo origen y uno objetivo?

A

Algoritmo A*

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Según los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el algoritmo JOHNSON?

A

Encuentra el camino más corto entre todos los pares de vértices de un grafo dirigido disperso

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

¿Cómo se llama el algoritmo de búsqueda, según la teoría de grafos, que encuentra el camino más corto entre todos los pares de vértices de un grafo dirigido disperso?

A

Algoritmo de JOHNSON

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Según los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el algoritmo FORD-FULKERSON?

A

Para encontrar el flujo máximo en una red de flujo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos que sirve para encontrar el flujo máximo en una red de flujo? (T)

A

Algoritmo de FORD-FULKERSON

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Según los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el algoritmo TARJAN?

A

Para encontrar componentes fuertemente conexos en un grafo dirigido

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos que sirve para encontrar componentes fuertemente conexos en un grafo dirigido?

A

Algoritmo de TARJAN

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Según los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el algoritmo VITERBI? (T)

A

Permite hallar la secuencia más probable de estados ocultos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos que permite hallar la secuencia más probable de estados ocultos?

A

Algoritmo de VITERBI

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Nombra algoritmos de búsqueda de la teoría de grafos

A

PRIM

KRUSKAL

DIJKSTRA

BELLMAN-FORD

FLOYD-WARSHALL

Algoritmo A*

JOHNSON

FORD-FULKERSON

TARJAN

VITERBI

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Algoritmos de ordenación, nombra alguno

A

Burbuja
Quick Sort
Selection
HeapSort
Inserción
ShellSort
Merge sorts
Bucket sort o Bin Sort
Radix Sort

46
Q

¿Cómo funciona el algoritmo de ordenación Burbuja o Bubble Sort?

A

Algoritmo natural que recorre repetidamente la lista, comparando pares de elementos adyacentes y los intercambia si están en el orden incorrecto

47
Q

¿En qué consiste el algoritmo de ordenación de Inserción?

A

Comienza con una lista vacía y toma elementos de la lista original uno por uno.
Para cada nuevo elemento, encuentra su posición correcta en la lista ordenada y lo inserta allí, desplazando los elementos más grandes si es necesario

48
Q

¿En qué consiste el algoritmo de ordenación Shell o ShellSort?

A

Permite intercambiar elementos que están lejos unos de otros para reducir la cantidad de desplazamientos necesarios para ordenar la lista. Algoritmo estable

49
Q

¿En qué consiste el algoritmo de ordenación MergeSort?

A

Algoritmo de ordenación eficiente que también utiliza la técnica de divide y vencerás.
Divide la lista en mitades, ordena cada mitad y luego las combina para formar una lista ordenada.

Funcionamiento:
1. División
2. Recursión
3. Combinación (Merge)

50
Q

¿En qué consiste el algoritmo de ordenación HeapSort o Montículos?

A

Funcionamiento:
1. Construcción de Montículos: Se reorganiza el array para que cumpla con las propiedades del montículo (máximo o mínimo)
2. Se aplica el proceso de heapify para restaurar las propiedades del montículo en la raíz. Este proceso se repite hasta que todos los elementos estén ordenados

51
Q

¿En qué consiste el algoritmo de ordenación de Selección? (T)

A

Seleccionar el número más pequeño

Funcionamiento:
1. Buscar el mínimo: Encuentra el elemento más pequeño en la parte desordenada del array.
2. Intercambiar: Intercambia este elemento con el primer elemento de la parte desordenada.
3. Repetir el algoritmo

52
Q

¿En qué consiste el algoritmo de ordenación RadixSort? (T)

A

Funcionamiento:
1. Los elementos se agrupan en “bandejas” (buckets), seleccionando con qué dígito empezar a ordenar
2. Se selecciona el elemento menos significativo y se le añade a su bucket correspondiente
3. Sacar elementos de las cubetas en orden
4. Se selecciona el segundo elemento menos significativo y se le añade a su bucket correspondiente
5. Sacar elementos de las cubetas en orden y ya queda ordenado

53
Q

¿En qué consiste el algoritmo de ordenación BucketSort?

A

Funcionamiento:
1. Metemos los números en cubetas o buckets con el reparto que consideremos, por ejemplo en bloques de 10 números.
2. Ordenamos cada cubeta o bucket con el algoritmo que consideremos
3. Extraemos los números en orden

54
Q

Tipos de grafos

A

Dirigidos ó digrafo: aquel en el que todas sus aristas tienen sentido o dirección

No dirigidos: las aristas representan relaciones simétricas y no tienen un sentido definido. Todas sus aristas son bidireccionales.

Conexo: es posible llegar desde cualquier nodo del grafo a cualquier otro nodo a través de una secuencia de aristas (conexiones) sin importar cuán larga sea esa secuencia.

Multigrafo: más de una arista entre vértices

Etiquetado/ponderado: las aristas tienen un valor o peso asociado

Completo: cada par de vértices está conectado por una arista.

54
Q

¿Cuál de las siguientes opciones NO es una característica de la asignación de espacio de almacenamiento enlazada?

a) Los bloques de un fichero son nodos de una lista enlazada.

b) Genera fragmentación externa.

c) Ineficiencia con el acceso directo.

d) Cada bloque contiene un indicador del siguiente bloque con datos del fichero.

A

B

Genera fragmentación externa.

La asignación enlazada genera fragmentación interna, no externa

55
Q

¿Qué formato de archivo de imagen soporta animaciones y tiene una paleta de colores limitada a 256?

a) .jpg
b) .png
c) .gif
d) .bmp

A

C

gif

56
Q

¿Cuál de las siguientes afirmaciones sobre los árboles B es FALSA?

a) Son árboles autoequilibrados.

b) Los nodos pueden tener más de dos hijos.

c) Se utilizan comúnmente en sistemas de bases de datos y sistemas de archivos.

d) La búsqueda de elementos en un árbol B tiene una complejidad temporal de O(n) en el peor de los casos.

A

D

La búsqueda de elementos en un árbol B tiene una complejidad temporal de O(n) en el peor de los casos.

nota: La búsqueda, inserción y borrado en un árbol B tienen una complejidad temporal de O(log(n))

57
Q

En un arbol, que es ….

  • nodo hoja
  • grado
  • orden
  • nivel
  • profundidad
  • altura de un nodo
  • anchura
A
  • nodo hoja: nodo que no tiene descendientes
  • grado: numero de hijos
  • orden. numero maximo teorico de hijos posibles
  • nivel: num de ramas que hay que recorrer hasta raiz
  • profundidad: igual que nivel
  • altura de un nodo: numero total de nodos hijos
  • anchura: el ancho del arbol

nota: remember que el nivel empieza por 0

58
Q

Dado este arbol… dime del nodo 4 su nivel, profundidad, altura y anchura

1
/ \
2 3
/
4

A
  • Nivel y profundidad es 2 (0,1, 2)
  • Altura es 0 (es el ultimo)
  • Anchura es 1 . La anchura del árbol sería 2
59
Q

Dado este arbol… dime del nodo 1 su nivel, profundidad , altura y anchura

1
/ \
2 3
/
4

A
  • Nivel y profundidad es 0
  • Altura es 2
  • Anchura es 1 (la anchura del árbol sería 2)
60
Q

¿Cuál de las siguientes NO es una implementación de un Array Asociativo?

a) Montículo
b) Lista enlazada
c) Tabla Hash
d) Arbol

A

D

Arbol

Explicación: Un Array Asociativo, también conocido como diccionario o mapa, es una estructura de datos que asocia claves únicas a valores. Las implementaciones comunes incluyen listas enlazadas, tablas hash y montículos. Los árboles, si bien son estructuras de datos útiles, no se utilizan para implementar Arrays Asociativos.

61
Q

Cuál de los siguientes algoritmos de ordenación tiene la mejor complejidad temporal en el caso promedio?

a) Merge Sort
b) Bubble Sort
c) Insertion Sort
d) Selection Sort

A

A

Merge Sort

Explicación: La complejidad temporal en el caso promedio de Merge Sort es O(n log n), que es mejor que la complejidad de Bubble Sort, Insertion Sort y Selection Sort, que es O(n^2) en el caso promedio.

62
Q

¿Cuál de los siguientes NO es un tipo de grafo?

a) Dirigido
b) No dirigido
c) Ponderado
d) Ordenado

A

D

Ordenado

Explicación: Los grafos se clasifican en dirigidos, no dirigidos y ponderados. Un grafo dirigido tiene aristas con una dirección específica, mientras que un grafo no dirigido tiene aristas sin dirección. Un grafo ponderado tiene pesos asociados a sus aristas. El término “ordenado” no se utiliza para clasificar grafos.

63
Q

Nombra 3 algoritmos de búsqueda en grafos (T)

A

Prim (ARM), Kruskal (ARM), Dijkstra (CM)

64
Q

¿En qué consiste el algoritmo de BELLMAN-FORD según los algoritmos de búsqueda de la teoría de grafos?

a) Encuentra el camino más largo en un grafo dirigido.

b) Encuentra el camino más corto desde un único origen en un grafo dirigido, permitiendo pesos negativos.

c) Encuentra el camino más corto entre todos los pares de nodos en un grafo dirigido.

d) Encuentra el camino más corto en un grafo no dirigido con todas las aristas de peso positivo.

A

B

Encuentra el camino más corto desde un único origen en un grafo dirigido, permitiendo pesos negativos.

65
Q

¿Cómo funciona el algoritmo de ordenación Burbuja (Bubble Sort)?

A) Recurre a un árbol binario para ordenar los elementos mediante intercambios entre los nodos.

B) Utiliza una pila para comparar y ordenar elementos en pares consecutivos.

C) Compara y, si es necesario, intercambia elementos adyacentes repetidamente hasta que la lista esté ordenada.

D) Implementa una búsqueda binaria para ordenar elementos a través de divisiones recursivas.

A

C

Compara y, si es necesario, intercambia elementos adyacentes repetidamente hasta que la lista esté ordenada.

66
Q

En el contexto de los algoritmos de búsqueda, ¿qué es un árbol recubridor mínimo (MST, por sus siglas en inglés)?

A) Un árbol binario que contiene todos los nodos y minimiza la profundidad del árbol.

B) Un subgrafo cíclico que incluye todos los vértices y tiene el menor peso total posible.

C) Un árbol que conecta todos los vértices de un grafo sin ciclos y con el menor peso total posible.

D) Un grafo no dirigido que tiene el máximo número de aristas posibles sin formar ciclos.

A

C

Un árbol que conecta todos los vértices de un grafo sin ciclos y con el menor peso total posible.

Árbol recubridor mínimo (MST): Es un subgrafo del grafo original que conecta todos los vértices sin formar ciclos y con el menor peso total de las aristas. Es fundamental en diversos problemas de optimización y búsqueda, como la planificación de redes.

67
Q

¿En qué consiste el algoritmo de ordenación HeapSort o Montículos?

A) Divide la lista en dos sublistas y las ordena recursivamente.

B) Construye un montículo (heap) y extrae el elemento máximo (o mínimo) repetidamente para formar una lista ordenada.

C) Utiliza la técnica de “Divide y Vencerás” para ordenar las sublistas de manera independiente.

D) Realiza intercambios de elementos adyacentes repetidamente hasta que la lista esté ordenada.

A

B

Construye un montículo (heap) y extrae el elemento máximo (o mínimo) repetidamente para formar una lista ordenada.

Algoritmo de ordenación HeapSort (Montículos): Es un algoritmo de ordenación que utiliza una estructura de datos conocida como montículo (heap). Primero, se construye un max-heap o min-heap a partir de los datos de entrada. Luego, se extrae repetidamente el elemento máximo (para max-heap) o mínimo (para min-heap) y se coloca en la posición adecuada de la lista ordenada, reduciendo el tamaño del heap en cada paso.

68
Q

Según los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el algoritmo Viterbi?

A) Determina el camino más corto en grafos dirigidos ponderados utilizando una pila.

B) Calcula el árbol recubridor mínimo en un grafo no dirigido.

C) Encuentra la secuencia más probable de estados ocultos en un modelo de Markov oculto.

D) Resuelve el problema del flujo máximo en una red de flujo.

A

C

Encuentra la secuencia más probable de estados ocultos en un modelo de Markov oculto.

Algoritmo Viterbi: Es un algoritmo dinámico que se utiliza para encontrar la secuencia más probable de estados ocultos en un modelo de Markov oculto (HMM, por sus siglas en inglés). Es ampliamente utilizado en áreas como el reconocimiento de voz, la biología computacional y la corrección de errores en códigos.

69
Q

¿Qué algoritmo de planificación de disco puede causar “inanición” de solicitudes, especialmente aquellas ubicadas en los extremos del disco?

a) SSTF (Shortest Seek Time First)
b) FCFS (First-Come, First-Served)
c) SCAN (Elevator Algorithm)
d) C-SCAN (Circular SCAN)

A

A

SSTF (Shortest Seek Time First)

70
Q

¿Cuál es la principal diferencia entre un grafo dirigido y uno no dirigido?

A

En un grafo dirigido, las aristas tienen dirección; en uno no dirigido, las aristas son bidireccionales

71
Q

¿Qué técnica de gestión de colisiones en tablas hash implica colocar un nuevo elemento en una posición diferente de la tabla si su posición original está ocupada? (T)

A

Hashing Cerrado

72
Q

¿Cuál de las siguientes opciones NO es un algoritmo de búsqueda en grafos?

a) Merge Sort
b) DIJKSTRA
c) Prim
d) Bellman-Ford

A

A

Merge Sort

Merge Sort es un algoritmo de ordenación, no de búsqueda en grafos

73
Q

En un árbol binario, ¿qué tipo de recorrido visita primero la raíz, luego el subárbol izquierdo y finalmente el subárbol derecho?

a. Preorden (PreOrder)
b. Inorden (InOrder)
c. Postorden (PostOrder)
d. Ninguno de los anteriores

A

A

Preorden (PreOrder)

74
Q

¿Cuál es la complejidad temporal en el peor caso del algoritmo Quicksort?

A

O(n²)

75
Q

¿Qué estructura de datos utiliza un montículo (heap) para su implementación?

A

Un array

76
Q

¿Cuál de las siguientes afirmaciones sobre el algoritmo Quick Sort es correcta?

a) Quick Sort tiene una complejidad temporal promedio de O(n).

b) Quick Sort es un algoritmo de ordenación interna que utiliza el enfoque de divide y vencerás.

c) Quick Sort siempre garantiza el mejor caso de complejidad temporal en O(n log n).

d) Quick Sort no utiliza un pivote para particionar el array.

A

B

Quick Sort es un algoritmo de ordenación interna que utiliza el enfoque de divide y vencerás.

77
Q

¿Cómo se llama el algoritmo de la teoría de grafos que determina el camino más corto dado un vértice origen al resto de los vértices en un grafo con pesos en cada arista?

a) Algoritmo de Prim

b) Algoritmo de Floyd-Warshall

c) Algoritmo de Bellman-Ford

d) Algoritmo de Dijkstra

A

D

Algoritmo de Dijkstra

a) Algoritmo de Prim: Este algoritmo se utiliza para encontrar el árbol de expansión mínima en un grafo conexo con pesos. No se centra en encontrar el camino más corto desde un vértice origen al resto de los vértices, sino en conectar todos los vértices del grafo con el costo total mínimo.

b) Algoritmo de Floyd-Warshall: Este algoritmo se utiliza para encontrar los caminos más cortos entre todos los pares de vértices en un grafo con pesos. Aunque es muy útil, no se ajusta específicamente a la descripción de encontrar el camino más corto desde un único vértice origen al resto de los vértices.

c) Algoritmo de Bellman-Ford: Aunque este algoritmo puede determinar el camino más corto desde un vértice origen al resto de los vértices en un grafo con pesos, también puede manejar grafos con pesos negativos. Sin embargo, dado que la pregunta no menciona específicamente la capacidad de manejar pesos negativos, la respuesta más específica y directa a la pregunta sería el algoritmo de Dijkstra, que es más eficiente en grafos sin pesos negativos.

d) Algoritmo de Dijkstra: Este algoritmo es el más adecuado para la descripción dada, ya que se utiliza específicamente para encontrar el camino más corto desde un vértice origen al resto de los vértices en un grafo con pesos no negativos.

78
Q

¿En qué consiste el Algoritmo A* según los algoritmos de búsqueda de la teoría de grafos?

a) Utiliza una función heurística para encontrar el camino más corto en un grafo ponderado.

b) Encuentra el árbol de expansión mínima en un grafo conexo.

c) Calcula el camino más corto entre todos los pares de vértices en un grafo.

d) Es un algoritmo específico para grafos no dirigidos sin pesos.

A

A

Utiliza una función heurística para encontrar el camino más corto en un grafo ponderado.

79
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos para encontrar un árbol recubridor mínimo en un grafo conexo y ponderado?

a) Algoritmo de Dijkstra

b) Algoritmo de Kruskal

c) Algoritmo de Bellman-Ford

d) Algoritmo A*

A

B

Algoritmo de Kruskal

80
Q

Según los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el algoritmo Viterbi?

a) Encuentra el camino más corto entre dos nodos en un grafo ponderado.

b) Resuelve el problema de la alineación de secuencias en bioinformática.

c) Encuentra el árbol de expansión mínima en un grafo conexo.

d) Determina la secuencia más probable de estados ocultos en un modelo de Markov oculto.

A

D

Determina la secuencia más probable de estados ocultos en un modelo de Markov oculto.

81
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos que encuentra, siempre y cuando se cumplan unas determinadas condiciones, el camino de menor coste entre un nodo origen y uno objetivo?

a) Algoritmo de Bellman-Ford

b) Algoritmo de Dijkstra

c) Algoritmo de Prim

d) Algoritmo A*

A

D

Algoritmo A*

remember.. que se cumplan condiciones

82
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos que sirve para encontrar componentes fuertemente conexos en un grafo dirigido?

a) Algoritmo de Dijkstra

b) Algoritmo de Bellman-Ford

c) Algoritmo de Prim

d) Algoritmo de Tarjan

A

D

Algoritmo de Tarjan

remember: Tarzán se agarra fuertemente a las lianas para no caerse

83
Q

¿En qué consiste el algoritmo de ordenación de Selección?

a) Es un algoritmo de ordenación interna que utiliza una función de hash para distribuir elementos en diferentes contenedores.

b) Es un algoritmo de ordenación externa que usa archivos en disco para ordenar grandes cantidades de datos.

c) Es un algoritmo de ordenación interna que selecciona repetidamente el elemento más pequeño del array no ordenado y lo intercambia con el primer elemento no ordenado.

d) Es un algoritmo de ordenación que construye un árbol de búsqueda binaria a partir de los elementos del array.

A

C

Es un algoritmo de ordenación interna que selecciona repetidamente el elemento más pequeño del array no ordenado y lo intercambia con el primer elemento no ordenado.

84
Q

¿Qué es un árbol equilibrado (auto-balanceable)?

a) Un árbol en el que todos los nodos tienen el mismo número de hijos.

b) Un árbol en el que la altura de los subárboles izquierdo y derecho de cualquier nodo difiere en no más de una unidad.

c) Un árbol en el que los nodos hoja están todos en el mismo nivel.

d) Un árbol que no necesita operaciones de reequilibrio después de inserciones o eliminaciones de nodos.

A

B

Un árbol en el que la altura de los subárboles izquierdo y derecho de cualquier nodo difiere en no más de una unidad.

85
Q

¿En qué consiste el algoritmo de ordenación Shell o ShellSort?

a) Es un algoritmo de ordenación que utiliza una función de hash para distribuir elementos en diferentes contenedores.

b) Es un algoritmo de ordenación que clasifica los elementos mediante un procedimiento de mezcla.

c) Es un algoritmo de ordenación que compara y ordena elementos distantes y reduce el intervalo de comparación progresivamente.

d) Es un algoritmo de ordenación que construye un árbol de búsqueda binaria a partir de los elementos del array.

A

C

Es un algoritmo de ordenación que compara y ordena elementos distantes y reduce el intervalo de comparación progresivamente.

86
Q

En relación con los algoritmos de búsqueda, ¿qué es un camino mínimo entre dos vértices en un árbol ponderado?

a) Es el camino más largo posible entre dos vértices.

b) Es el camino con la menor cantidad de vértices.

c) Es el camino con el menor costo total de las aristas que conectan los vértices.

d) Es el camino que pasa por el mayor número de aristas.

A

C

Es el camino con el menor costo total de las aristas que conectan los vértices.

87
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos que permite hallar la secuencia más probable de estados ocultos?

a) Algoritmo de Dijkstra

b) Algoritmo de Kruskal

c) Algoritmo de Bellman-Ford

d) Algoritmo Viterbi

A

D

Algoritmo Viterbi

viterbi, ocultos

88
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos que determina el camino más corto desde un único origen en un grafo dirigido o no dirigido. Admite que alguna de las aristas sea negativa?

a) Algoritmo de Dijkstra

b) Algoritmo de Kruskal

c) Algoritmo de Bellman-Ford

d) Algoritmo A*

A

C

Algoritmo de Bellman-Ford

89
Q

¿Cómo se almacenan los datos en una tabla hash?

a) Los datos se almacenan en una lista enlazada que se recorre de principio a fin.

b) Los datos se almacenan en una estructura de árbol binario de búsqueda.

c) Los datos se almacenan en una tabla mediante una función de hash que determina el índice en el que se guarda cada elemento.

d) Los datos se almacenan en una pila donde el último elemento insertado es el primero en ser eliminado.

A

C

Los datos se almacenan en una tabla mediante una función de hash que determina el índice en el que se guarda cada elemento.

90
Q

Según los algoritmos de búsqueda de la teoría de grafos, ¿en qué consiste el algoritmo de Bellman-Ford?

a) Encuentra el árbol de expansión mínima en un grafo conexo seleccionando siempre la arista de menor peso que conecta un vértice en el árbol con un vértice fuera de él.

b) Encuentra los componentes fuertemente conexos en un grafo dirigido.

c) Determina el camino más corto desde un único origen en un grafo dirigido o no dirigido, admitiendo que algunas de las aristas tengan peso negativo.

d) Resuelve el problema de la alineación de secuencias en bioinformática.

A

C

Determina el camino más corto desde un único origen en un grafo dirigido o no dirigido, admitiendo que algunas de las aristas tengan peso negativo.

91
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos que sirve para encontrar el flujo máximo en una red de flujo?

a) Algoritmo de Dijkstra

b) Algoritmo de Kruskal

c) Algoritmo de Ford-Fulkerson

d) Algoritmo de Bellman-Ford

A

C

Algoritmo de Ford-Fulkerson

92
Q

¿En qué consiste el algoritmo de ordenación RadixSort?

a) Es un algoritmo de ordenación que compara y ordena elementos distantes y reduce el intervalo de comparación progresivamente.

b) Es un algoritmo de ordenación que utiliza una función de hash para distribuir elementos en diferentes contenedores.

c) Es un algoritmo de ordenación que clasifica los elementos por sus dígitos, desde el dígito menos significativo hasta el más significativo.

d) Es un algoritmo de ordenación que construye un árbol de búsqueda binaria a partir de los elementos del array.

A

C

Es un algoritmo de ordenación que clasifica los elementos por sus dígitos, desde el dígito menos significativo hasta el más significativo.

93
Q

¿Cómo se llama el algoritmo de búsqueda de la teoría de grafos que determina el camino mínimo en grafos dirigidos ponderados en una única ejecución?

a) Algoritmo de Dijkstra

b) Algoritmo de Kruskal

c) Algoritmo de Bellman-Ford

d) Algoritmo de Floyd-Warshall

A

D

Algoritmo de Floyd-Warshall

nota: 1 sola ejecucion

94
Q

¿En qué consiste el algoritmo de ordenación HeapSort o Montículos?

a) Es un algoritmo de ordenación que utiliza una función de hash para distribuir elementos en diferentes contenedores.

b) Es un algoritmo de ordenación que clasifica los elementos mediante un procedimiento de mezcla.

c) Es un algoritmo de ordenación que convierte el array en un montón (heap) y luego extrae el elemento máximo (o mínimo) repetidamente para ordenar el array.

d) Es un algoritmo de ordenación que compara y ordena elementos distantes y reduce el intervalo de comparación progresivamente.

A

C

Es un algoritmo de ordenación que convierte el array en un montón (heap) y luego extrae el elemento máximo (o mínimo) repetidamente para ordenar el array.

95
Q

¿Para qué sirve la técnica de programación dinámica?

a) Para ejecutar programas en paralelo y reducir el tiempo de cómputo en aplicaciones de alta demanda.

b) Para almacenar resultados intermedios de subproblemas en una tabla y evitar cálculos redundantes, optimizando así el rendimiento de algoritmos.

c) Para desarrollar aplicaciones en tiempo real con baja latencia y alta disponibilidad.

d) Para cifrar datos sensibles en aplicaciones de red utilizando claves asimétricas.

A

B

Para almacenar resultados intermedios de subproblemas en una tabla y evitar cálculos redundantes, optimizando así el rendimiento de algoritmos.

Breve explicación: La programación dinámica es una técnica de optimización algorítmica que se utiliza para resolver problemas complejos dividiéndolos en subproblemas más simples. Al almacenar los resultados de estos subproblemas en una tabla, se evita recalcular los mismos resultados múltiples veces, mejorando significativamente la eficiencia y el rendimiento del algoritmo.

Por qué las otras opciones son incorrectas:

a) Para ejecutar programas en paralelo y reducir el tiempo de cómputo en aplicaciones de alta demanda: Esto describe la computación paralela, no la programación dinámica.

c) Para desarrollar aplicaciones en tiempo real con baja latencia y alta disponibilidad: Esto se relaciona con el diseño de sistemas en tiempo real, no con la programación dinámica.

d) Para cifrar datos sensibles en aplicaciones de red utilizando claves asimétricas: Esto se refiere a la criptografía, no a la programación dinámica.

96
Q

¿Cuál de las siguientes afirmaciones describe correctamente el algoritmo Floyd-Warshall?

A) Calcula la distancia mínima entre un solo par de vértices en un grafo.

B) Utiliza programación dinámica para encontrar el camino más corto entre todos los pares de vértices en un grafo ponderado.

C) Solo funciona con grafos no dirigidos y sin pesos negativos.

D) Es un algoritmo de búsqueda en profundidad que explora todos los caminos posibles.

A

B

Utiliza programación dinámica para encontrar el camino más corto entre todos los pares de vértices en un grafo ponderado.

97
Q

¿Cuál de las siguientes afirmaciones describe correctamente el algoritmo de ordenación por selección?

A) Ordena los elementos mediante la inserción de cada nuevo elemento en su posición correcta.

B) Busca el elemento más grande y lo coloca al final de la lista en cada iteración.

C) Encuentra el elemento más pequeño en la lista y lo intercambia con el primer elemento, repitiendo este proceso para los elementos restantes.

D) Utiliza un enfoque de divide y vencerás para ordenar los elementos.

A

C

Encuentra el elemento más pequeño en la lista y lo intercambia con el primer elemento, repitiendo este proceso para los elementos restantes.

98
Q

¿Cuál de las siguientes afirmaciones describe correctamente el algoritmo de Prim en la teoría de grafos?

A) Encuentra el camino más corto entre dos vértices en un grafo dirigido.

B) Utiliza una estrategia codiciosa para construir un árbol de expansión mínima conectando todos los vértices de un grafo no dirigido y ponderado.

C) Requiere que el grafo sea dirigido y no puede manejar pesos negativos.

D) Se basa en un enfoque de divide y vencerás para dividir el grafo en subgrafos más pequeños.

A

B

Utiliza una estrategia codiciosa para construir un árbol de expansión mínima conectando todos los vértices de un grafo no dirigido y ponderado.

El algoritmo de Prim es un método eficiente que busca crear un árbol de expansión mínima (MST) al seleccionar repetidamente la arista de menor peso que conecta un vértice en el árbol en construcción con un vértice fuera del árbol, asegurando que se minimice el peso total del árbol.

99
Q

¿Cuál de las siguientes afirmaciones describe correctamente el algoritmo Viterbi en la teoría de grafos?

A) Se utiliza para encontrar el camino más corto entre dos vértices en un grafo no dirigido.

B) Es un algoritmo de programación dinámica que determina la secuencia más probable de estados ocultos en un modelo de Markov.

C) Calcula la distancia mínima entre todos los pares de vértices en un grafo ponderado.

D) Es un algoritmo de búsqueda en profundidad que explora todos los caminos posibles en un grafo.

A

B

Es un algoritmo de programación dinámica que determina la secuencia más probable de estados ocultos en un modelo de Markov.

El algoritmo Viterbi se utiliza principalmente en el contexto de modelos ocultos de Markov (HMM), donde busca encontrar la secuencia más probable de estados ocultos dados una serie de observaciones.

100
Q

¿Cuál de las siguientes afirmaciones describe correctamente el algoritmo Bellman-Ford en la teoría de grafos?

A) Encuentra el camino más corto en un grafo no dirigido y ponderado sin considerar pesos negativos.

B) Utiliza una técnica voraz para seleccionar el nodo de menor peso y relajar las aristas.

C) Calcula el camino más corto desde un nodo origen a todos los demás nodos, permitiendo pesos negativos en las aristas.

D) Solo funciona en grafos dirigidos y no puede detectar ciclos negativos.

A

C

Calcula el camino más corto desde un nodo origen a todos los demás nodos, permitiendo pesos negativos en las aristas.

El algoritmo Bellman-Ford es eficaz para encontrar la ruta más corta en un grafo dirigido y ponderado, incluso cuando hay aristas con pesos negativos, y también puede detectar ciclos negativos en el grafo.

101
Q

¿Cuál es el nombre del algoritmo de búsqueda en la teoría de grafos que se utiliza para encontrar el flujo máximo en una red de flujo?

A) Algoritmo de Dijkstra
B) Algoritmo de Prim
C) Algoritmo de Bellman-Ford
D) Algoritmo de Ford-Fulkerson

A

D

Algoritmo de Ford-Fulkerson

El algoritmo de Ford-Fulkerson se utiliza para calcular el flujo máximo en una red de flujo, permitiendo determinar la cantidad máxima de flujo que puede transportarse desde un nodo fuente a un nodo sumidero.

102
Q

¿Cómo se llama el algoritmo que encuentra un árbol recubridor mínimo en un grafo conexo, no dirigido y cuyas aristas están etiquetadas?

A) Algoritmo de Dijkstra
B) Algoritmo de Prim
C) Algoritmo de Bellman-Ford
D) Algoritmo de Floyd-Warshall

A

B

Algoritmo de Prim

103
Q

¿Cuál es otro algoritmo comúnmente utilizado para encontrar un árbol recubridor mínimo?

A) Algoritmo de A*
B) Algoritmo de Kruskal
C) Algoritmo de Ford-Fulkerson
D) Algoritmo de Johnson

A

B

Algoritmo de Kruskal

104
Q

¿Qué estructura de datos es comúnmente utilizada en el algoritmo de Prim para mantener las aristas candidatas?

A) Cola de prioridad
B) Lista enlazada
C) Pila
D) Árbol binario

A

A

Cola de prioridad

105
Q

En el algoritmo de Kruskal, ¿qué se utiliza para evitar la formación de ciclos al agregar aristas?

A) Un árbol binario
B) Un conjunto disjunto
C) Una lista de adyacencia
D) Una matriz de adyacencia

A

B

Un conjunto disjunto

106
Q

¿Cuál es la principal diferencia entre los algoritmos de Prim y Kruskal?

A) Prim comienza con un vértice y expande el árbol, mientras que Kruskal selecciona aristas.

B) Kruskal es más rápido que Prim en todos los casos.

C) Prim solo funciona en grafos dirigidos.

D) Kruskal no garantiza un árbol recubridor mínimo

A

A

Prim comienza con un vértice y expande el árbol, mientras que Kruskal selecciona aristas.

107
Q

¿Qué tipo de grafos pueden ser utilizados con los algoritmos de Prim y Kruskal?

A) Solo grafos dirigidos.

B) Grafos conexos y no dirigidos con pesos en las aristas.

C) Grafos no conexos.

D) Grafos bipartitos solamente.

A

B

Grafos conexos y no dirigidos con pesos en las aristas.

108
Q

¿Qué técnica se utiliza para resolver colisiones mediante la aplicación de una segunda función hash?

A) Sondeo lineal
B) Doble hash
C) Encadenamiento
D) Rehashing

A

B

Doble hash

109
Q

¿Qué es Radix Sort?

A) Un algoritmo de ordenación basado en comparaciones.

B) Un algoritmo de ordenación no comparativa que organiza los elementos procesando sus dígitos de forma individual.

C) Un método para buscar elementos en una lista.

D) Un algoritmo que solo ordena números enteros.

A

B

Un algoritmo de ordenación no comparativa que organiza los elementos procesando sus dígitos de forma individual.

110
Q

¿Qué técnica se utiliza comúnmente como subrutina en Radix Sort para ordenar los dígitos en cada posición?

A) Quick Sort
B) Merge Sort
C) Counting Sort
D) Bubble Sort

A

C

Counting Sort

111
Q

¿Qué característica distingue a la Búsqueda en Anchura (BFS) de la Búsqueda en Profundidad (DFS)?

a) BFS explora todos los nodos a una distancia dada antes de avanzar, mientras que DFS profundiza en un camino antes de retroceder.

b) BFS es más eficiente que DFS en todos los casos.

c) DFS no puede encontrar la solución más corta, mientras que BFS siempre lo hace.

d) BFS utiliza menos memoria que DFS.

A

A

BFS explora todos los nodos a una distancia dada antes de avanzar, mientras que DFS profundiza en un camino antes de retroceder.