B2T3 Estructura de datos y Algoritmos Flashcards

(66 cards)

1
Q

Que es el Tipo Abstracto de Datos (TAD)?

A

TAD = ¿Que resuelvo?
Modelo matemático para definir los tipos de datos (comportamiento Primitivos).
Especifica operaciones y comportamientos sin detallar la implementación.

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

Que es la estructura de datos?

A

Estructurad de datos = ¿Cómo resuelvo?
Concepto más concreto que TAD(tipo abstracto de datos) orientado a la implementación.
Define como se almacenan y manipulan los datos (como se implementan).
Un TAD puede tener varias estructuras de datos posibles para su implementación.

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

Dime algunos ejemplos de Tipos Abstractos de Datos (TAD) y luego me dices posibles Estructuras de datos.

A

1 List = Secuencia
Array, Lista enlazada
2 Set/Multiset (con repetidos) = Grupo
Árbol rojo-negro, tabla hash
3 Queue/Double-ended Queue (bicola)=cola
Array, Lista [doble_]enlazada
4 Stack = Pila
Array, Lista enlazada
5 Priority Queue (heap)= Cola con prioridad
Montículo (propiedad)
6 Tree = árbol
7 Graph = Grafo
Matriz, Array de listas enlazadas
8 Associative Array = Diccionario o Mapa
Tabla de hash

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

Dime las operaciones por defecto que se pueden hacer con los tipos de datos abstractos Stack, Queue y List

A

Stack (pila) “LIFO”: push, pop, isEmpty, top
Queue (cola) “FIFO”: enqueue, dequeue, isEmpty, top(top=consulta)
List (lista): isEmpty, insertarDelante, insertarDetrás, head, tail

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

Como funciona el tipo abstracto de datos (primitiva) tail en List?

A

Cada vez que llamemos a tail nos devuelve la Lista sin el primer elemento (cabeza).
lista = [1,3,7,2,5]
tail(tail(tail(lista))) = [2,5]
head(tail(tail(tail(lista)))) = [2]

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

Estructura de datos Tabla Hash, características principales.

A

1 Los datos operan con la función hash y luego obtienen su posición en la tabla hash
2 Pueden ser funciones hash que generen datos circulares, como obtener el resto de una división (mod)
3 Si se aplica mod los datos se devuelven en progresión circular, por lo que saldrán repetidos (colisiones) cuanto la tabla sea más pequeña más colisiones saldrán
4 Para solucionar las colisiones se encadena una lista enlazada por cada campo de la tabla hash

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

Estructura de datos Montículo, características principales

A

1 Están en forma de árbol y el vértice/nodo más alto/raíz será el máximo(max-heap)/mínimo(min-heap)
2 Un vértice más alto será mayor/menor que los vértices más bajos
2 Con un árbol binario -> Montículo binario
3 Con un array -> hijos del nodo n -> 2n y 2n+1

En la imagen si vemos el array de nodos, podemos sacar la posición de los dos hijos de cada nodo con 2n y 2n+1

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

Parámetros de un árbol: Orden, Grado, Profundidad, Altura, Factor de equilibrio, Árbol Completo, Peso

A

0 Orden de un árbol: Nº máximo de hijos que puede tener cualquier nodo.
1 Grado de un nodo: nº de hijos directos que tiene un nodo particular.
2 Profundidad de un nodo: nº aristas desde la raíz al nodo (nodo raíz = 0).
3 Altura de un nodo: Trayectoria más larga en nº de aristas desde ese nodo a una hoja.
3B Nivel de un árbol: Raiz=Nivel 1, 1ºhijos=Nivel2, 2ºhijos=Nivel3…..
4 Factor de equilibrio (FE): Diferencia altura entre subárbol izquierda y derecho.
5 Árbol completo: Tiene todos sus hijos, es decir, todos los nodos llegan al orden del árbol (máximo de hijos).
6 Peso: Nº de nodos que tiene el árbol

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

1 Recorridos en profundidad: Preorden, Inorden y Postorden
2 Recorridos en amplitud

A

* Recorridos en Profundidad*
1 Preorden (RID): Raíz, izq, derecha
2 Inorden (IRD): Izq, raíz, derecha
3 Postorden (IDR): Izq, derecha, raíz
** Recorridos en Amplitud **
1 Recorrer el árbol por niveles

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

Árboles binarios búsqueda y fibonacci

A
  • Árboles binarios: Tienen orden 2.
    1 Árbol binario de búsqueda: Recorrido Inorden (IRD) -> Devuelve elementos ordenados ya que datos IZQ > RAÍZ> DER
    2 Árbol binario de Fibonacci (AVL):
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Árboles equilibrados (auto-balanceables), tipos

A

Factor de equilibrio(altura de subarboles) es -1, 0 o 1.
—Tipos—
1 AVL (rotaciones)
2 AA
3 rojo-negro
4 splay
5 árbol B

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

Árboles B, B+ y B*

A
  • Tienen más de una clave
  • Usado en BBDD y Sistemas de ficheros
  • Cada nodo puede tener +2 hijos (nº hijos se llama orden M)
    — Árbol B+ —
    1 Mantiene datos ordenados
    2 Inserciones y borrados en tiempo logarítmico (proporcional)
    3 Cada nodo tiene como máximo M hijos
    4 Cada nodo (excepto raíz) tiene mínimo M/2 claves

— Árbol B+ —
1 Nodos internos sólo contienen claves y punteros
2 Los nodos hojas sólo tienen datos y punteros
3 Los nodos hojas estan enlazados entre sí por punteros

— Árbol B* —
1 Realiza reestructuración (fusión y rupturas de nodos) para garantizar densidad de ocupación 2/3

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

Representación de los Grafos

A

— Representación —
1 Listas de adyacencias: array de vértices + listas enlazas por cada vértice
2 Matrices de adyacencia: Matriz cuadrada (desperdicia memoria con muchos nodos)
- filas y columnas = orden del grafo
- Valores interiores marcan si están conectados (1,0) y si lo están y están ponderados el peso (4”vertices”)

— Parámetros —
1 Dirigidos o dígrafo (sentido único)
2 Grafo conexo (Todos nodos conectados)
3 Multígrafo (+1 arista entre dos vertices)
4 Etiquetado/Ponderado (Peso numerico en aristas)
5 Orden del grafo (nº vértices)
6 Grado de un vértice (nº arcos incidentes)

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

Parámetros de los Grafos

A

— Parámetros —
1 Dirigidos o dígrafo (sentido único)
2 No Dirigidos (ambos sentidos)
3 Grafo conexo (Todos nodos conectados)
4 Multígrafo (+1 arista entre dos vertices)
5 Etiquetado/Ponderado (Peso numerico en aristas)
6 Orden del grafo (nº vértices)
7 Grado de un vértice (nº arcos incidentes)

— Representación —
1 Listas de adyacencias: array de vértices + listas enlazas por cada vértice
2 Matrices de adyacencia: Matriz cuadrada (desperdicia memoria con muchos nodos)
- filas y columnas = orden del grafo
- Valores interiores marcan si están conectados (1,0) y si lo están y están ponderados el peso (4”vertices”)

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

Algoritmos de los Grafos

A

1 PRIM (árbol recubrimiento min)
“camino mínimo pasar todos los vértices”
2 KRUSKAL (árbol recubrimiento min) “ STP”
“camino mínimo pasar todos los vértices”
3 DIJKSTRA (camino min 2 vértices, No soporta pesos negativos) OSPF
4 BELLMAN-FORD (camino min 2 vértices) RIP
7 FLOYD-WARSHALL (camino min entre todos los vertices, origen no unico)
5 FORD-FULKERSON (camino que maximicen el flujo entre 2 nodos)
6 TARJAN (Crea/Identifica grupos de vértices fuertemente conexos)

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

Que es un algoritmo?

A

Un conjunto de reglas que, aplicadas sistematicamente a unos datos de entrada apropiados, resuelven un problema en un número finito de pasos elementales.
Un algoritmo debe terminar.

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

Técnicas de análisis y diseño de algoritmos:

A

1 Divide y vencerás: TOP-DOWN
“Dividiendo en problemas más pequeños”
2 Voraces: Opción óptima en cada paso
Dijkstra/A*/Prim/Kruskal
3 Probabilisticos: Montecarlo/Las Vegas
4 Backtracking: Explora árbol soluciones
5 Programación dínamica: BOTTOM-UP o TOP-DOWN + memorización
“Combinar subproblemas óptimos”

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

Representación de la complejidad espacial y temporal de un algoritmo con conta superior asintótica Big O notation

A

Ordenado por crecimiento de más lento a más rápido:
1 O(1) -> Constante -> Acceder a elemento de array por índice
2 O(log(n)) -> Logarítmica -> Búsqueda binaria en un arreglo ordenado
3 O(n) -> Lineal -> Recorrer un array
4 O(n log(n) -> n Logarítmica -> Merge o Sort
5 O(n^2) -> Cuadrática -> Comparar pares de elementos
6 O(2^n) -> Exponencial -> Problemas de optimización con recursión exponencial
7 O(n!) -> Factorial -> Generación de todas las permutaciones de una lista
8 O(n^n) -> Potencial exponencial

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

Clasificación de algoritmos de ordenación

A

1 Interno (memoria) Externo (fichero)
2 Natural (Tarda lo mínimo si la entrada está ordenada)
3 Estable (mantiene orden relativo origina para claves iguales

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

Tipos de algoritmos de ordenación

A

1 Exchange Sorts: Intercambiar y mover datos. Burbuja / Quick Sort / Cocktail
2 Selection Sorts: Busca la información. Seleccion / Heap Sort
3 Insertion Sort: Busca donde insertar. Inserción / Shell Sort
4 Merge Sorts: Mezclar. Merge Sort
5 Distribution Sorts: No comparan. Tiene cajones y distribuye los datos en base a un criterio. Bucket Sort o Bin Sort / Radix Sort

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

Explícame los siguientes algoritmos de ordenación: Burbuja y Inserción Directa.

A

1 Burbuja -> O(n^2) -> Va desplazando el nº más grande a la derecha a base de comparaciones e intercambios entre elementos adyacentes. O(n) si la lista ya esta ordenada
2 Inserción Directa -> O(n2) -> Busca donde insertar el dato y desplaza los siguientes elementos. Si hace búsqueda binaria -> Inserción binaria.

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

Explícame los siguientes algoritmos de ordenación: Merge Sort y Quick Sort.

A

1 Merge Sort -> O (n log n) -> (DIvide y vence) Es recursivo. Divide la lista en sublista hasta llegar al caso más sencillo para comparar (parejas). Luego mezcla las sublistas para obtener una lista ordenada.
2 Quick Sort -> O (n log(n)) -> (Divide y vence) Es recursivo. Elegimos un pivote. En la primera pasada, los menores del pivote se ponen a la izquierda y los mayores a la derecha. 2ª pasada, hacemos 2 llamadas de T(n/2). Peor caso O(n^2) si el pivote es el menor o el mayor de los valores.

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

Explícame los siguientes algoritmos de ordenación: Heap Sort o Montículos y Selección.

A

1 Heap Sort o Montículos -> O(n log(n)) -> Se meten los datos en un montículo Max-Heap y luego se realizan N llamadas a EliminarMax(). Por tanto al regenerarse se encuentra la nueva raíz max hasta ordenarlos todos.
2 Selección -> Siempre O(n^2) -> Primero busca el mínimo y lo coloca el primero. Luego busca el siguiente mínimo y lo coloca después.

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

Explícame los siguientes algoritmos de ordenación: RadixSort y BucketSort o BinSort.

A

1 RadixSort -> O(n K) ->Se basa en el número de cifras de los números a ordenar. LSD usa el digito menos significativo y MSD el más significativo.
2 BucketSort o BinSort -> O(n) -> Distribuye los números en casilleros y dentro de cada casillero aplicas el criterio que sea como otro algoritmo de ordenación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Estructuras de datos estáticas
1 Matriz 2 Array 3 Vector
26
Dime todos los algoritmos de camino mínimo
1 Dijkstra (OSPF*estado-enlace) 2 Bellman-Ford (RIP*vector distancia) 3 A* 4 Floyd-Warshal (Calcula todos los caminos) 5 Johnson 6 Viterbi
27
Dime los tipos de acceso de ficheros
1 Acceso secuencial (inicio, borrado y final) 2 Acceso directo (a los registros) pos. en archivo 3 Acceso indexado(fich. datos + fich. índices) 4 Híbrido (secuencial + indexado) 5 Externa (directa o natural) directa: parejas -> cuartetos -> ... natural: directa + si ya están ordenados no los mueve
28
Explícame los formatos de ficheros de imagen: webp, jpg y png
1 webP (con o sin perdidas "compresión) 2 jpg (con ) JPEG = "Joint Photo Experts Group" JPEG2000 (con y sin) Lossless JPeg (sin) 3 png (sin) Transparencia, no animación y true color (24bits)
29
Explícame los formatos de ficheros de imagen: gif, tiff, bmp y svg
1 gif (Compresión LZW sin) 256 colores, animación y transparencia 2 tiff (con o sin) Etiquetado y multipágina 3 bmp (Compresión RLE sin) Microsoft 4 svg "Scalable Vector Graphics" Tipo MIME svg+xml. En html5 se incrusta en nativo.
30
Que es un fichero binario y como funciona?
1 Fichero que almacena la información en bytes 2 Se lee el Signature(Magic Number): Secuencia inicial de bytes que identifica el tipo de file. ej: jpeg = FF d8 FF 3 Lo asocia a un tipo MIME(estándar en files web), en este ejemplo image/jpeg 4 Abre el archivo con el visor adecuado
31
Dame alguna característica de estos tipos de ficheros: exe, msi pkg/dmg, deb, rpm, tar.gz
1 exe: ejecutable de microsoft 2 msi: instalable de microsoft 3 pkg / dmg: instalable de Mac 4 deb: instalable de Linux Debian y derivados como Ubuntu 5 rpm: instalable de Linux Redhat y derivados como Centos 6 tar.gz: comprimido básico de Linux
32
Dame alguna característica de estos tipos de ficheros: vcf, p12/pfx, cer, eml/msg, mbox, pst/ost
1 vcf: vcard file 2 p12/pfx: certificado X509 con clave priv 3 cer: certificado X509 sin clave priv 4 eml(RFC2822)/msg: formato de un email 5 mbox(RFC4155): contenedor de emails 6 pst/ost: buzones de Outlook
33
Dame alguna característica de estos tipos de ficheros: nsf, apk, ipa, csv, swf, epub.
1 nsf: buzones de Louts de IBM 2 apk: instalable de Android 3 ipa: instalable de iOS 4 csv: texto formato separadores "," o ";" 5 swf: fichero con "película" flash 6 epub: libro electrónico
34
Dime algunos ficheros de Ofimática con Microsoft
1 xls (binario, hojas de cálculo) 2 doc / dot (binario, documentos / plantilla -> texto) 3 docx / docm / dotx /dotm (p.2 + actualizados con Open XML) 4 xlsx / xlsm / xlst (p.1 + act. con xml) 4B xlsb ( p.1 + act. pero binario, + eficiente) 5 pptx /pptm /potx /potm (xlm, powerpoint) 6 ppsx / pssm (xml, proyección powerpoint) t -> template/plantilla m -> permite ejecutar macros
35
Dime algunos ficheros de Ofimática con Open Office
1 odt (xml, documento/texto) 2 ott (plantilla/texto) 3 ods (xml, hoja de cálculo) 4 odp (xml, Presentación) 5 odg (graficos vectoriales) 6 odc (config conexión BBDD) 7 odf (fórmulas mátematicas) 8 odi (diagramas) 9 odh (xml, help/ayuda) 10 odb (BBDD)
36
Dime los tipos de PDF(Portable Document Format) principales
1 PDF/A (Archivos de larga duración) 2 PDF/UA (estándar para discapacitados) 3 PDF/X (Para impresión profesional) 4 PS(PostScript) Lenguaje de descripción de página, impresiones calidad "Adobe" 5 PCL(Printer Command Language) Lenguaje de control de impresora de HP
37
Que es el estándar ECMA-376?
Define el Open Office XML, que es el formato subyacente de los archivos docx, xlsx y pptx. El docx es un .zip con muchos ficheros xml dentro con formato OOXML (Office Open XML) En 2007 Microsoft introdujo docx en lugar de doc que usaba hasta ese momento.
38
Algunas caracteristicas de estos ficheros de audio: MP3(.mp3), WAV(.wav .wave), FLAC(.flac) y WMA(.wma)
1 MP3 Desarrollado por"Moving Picture Expers Group"(con pérdidas, etiqueta ID3) 2 WAV "IBM y Microsoft" Contenedor que admite códec ACM(compresión) y LPCM(sin comprimir) 3 FLAC "Xiph.org Foundation" (sin pérdidas) 4 WMA "Microsoft" Existen 4 codees
39
Algunas características de estos ficheros de audio: AC3(.ac3), AAC(.m4a .m4b .acc .3gp), OPUS (.opus) y VORBIS(.ogg)
1 AC3 "Laboratorios Dolby" (con pérdidas) Multi-canal 2 ACC "Sucesor de MP3" (con pérdidas) 3 OPUS "Xiph.Org Foundation" (con perd.) 4 VORBIS "Xiph.Org Foundation" (con perd.)
40
Nombre alguna característica de estos contenedores de video: MKV, AVI, ASF y OGG
1 .mkv Estándar abierto 2 .avi "Microsoft" 3 .asf "Microsoft" Contiene WMA y WMV 4 .ogg "Xiph.Org Foundation" Estandar abierto
41
Nombra alguna característica de estos contenedores de video: 3GP, MP4, MOV, WEBM
1 .3gp Para moviles(2G, 3G y 4G) 2 .mp4 MPEG-4 part 14 3 .mov "Apple" Deriva de "MPEG-4 part 14" 4 .webm (basado en MKV) Royalty-free audio Vorbis/Opus y video VP8/VP9/AV1
42
Nombra alguna caracteristica de estos archivos de video: DIVX/XDIV, AVC, HEVC, VVC, AV1, THEORA
1 DIVX y XDIV 2 AVC 3 HEVC Soporta 8k 4 VVC Sucesor de HEVC 5 AV1 Sucesor de VP9 6 THEORA "Xiph.Org Foundation"
43
Nombra alguna caracteristica de estos archivos de video: VP8, VP9, MPEG-1 part2, MPEG-2 part2, MPEG-4 part2 y WMV
1 VP8 "Google" Competidor de AVC 2 VP9 "Google" 3 MPEG-1 part2 Video CD 4 MPEG-2 part2 DVD 5 MPEG-4 part2 HD 6 WMV "Microsoft
44
En que consiste un max-heap?
Es un montículo que se puede representar en forma de árbol y su raíz es mayor o igual a cada uno de todos los demás vértices/nodos. Esto también sucede en cada uno de los subárboles que se forman en cada nodo, la raíz de este subárbol debe ser mayor o igual.
45
A que TAD pertenecen las primitivas push y pop?
A una pila/stack (LIFO)
46
En que consiste una "colisión" en una tabla de Hash?
Que cuando aplicando el "algoritmo de hash" a las distintas keys/claves, dan el mismo resultado/valor/posición. Para solucionar esto se crea enlaza una tabla a cada campo valor/resultado/posición para poner los distintos resultados.
47
Definición de grado de un nodo y orden del árbol?
El grado de un nodo es el nº de hijos directos que tiene. El orden de un árbol es el nº máximo de hijos directos que puede tener cada uno de los nodos.
48
Definición de altura y profundidad de un nodo?
Altura es la distancia en nº de vertices hasta la hoja más lejana. Profundidad es la distancia en nº de nodos/vértices hasta la raíz.
49
En que consiste un árbol AVL?
Es una implementación de árbol binario de búsqueda que mantiene automáticamente un factor de equilibrio entre +1,0 y -1(autobalanceable). Árboles autobalanceables: AA AVL Red-black Splay
50
Para que sirve el algoritmo de Kruskal?
Algoritmo que sirve para generar un árbol de recubrimiento mínimo (árbol que conecta a todos los nodos con conste global/suma mínimo) a partir de un grafo. (minium spanning tree) grafo-->A.Kruskal-->Árbol recubrimiento mínimo
51
En que consiste el grado de un vértice en un grafo?
Nº de aristas inicidentes en ese vértice
52
Para que sirve el algoritmo de Dijkstra?
Para calcular el camino mínimo desde un nodo a todos los demás. El caso de uso que se suele utilizar es el camino mínimo entre dos nodos.
53
Cuales son dos caracteristicas de los arboles B++?
Nodos hojas entrelazados Nodos internos sólo contienen claves y punteros
54
Para que sirve el algoritmo de Ford-Fulkerson?
Para maximizar el flujo dentro de un grafo/red.
55
Uso de la palabra reservada abstract
1 En una clase: "public abstract class persona" -No se puede instanciar dicha clase. -No está vacía de código, puede tener algunos métodos abstractos. 2 En un método: "public abstract void calcular() -Si defines/declaras un sólo método abstracto ..... La clase también tendrás que declararla abstracta Una clase que hereda de una clase abstracta, tiene obligación de implementarlos? Si, salvo que esa clase también se declare abstracta.
56
Con que etiqueta de HTML5 podemos crear una lista desplegable de opciones?
Con