Week 3 - Section (Algortihms) Flashcards

(38 cards)

1
Q

¿En qué consiste el algoritmo de búsqueda lineal?

A

Consiste en revisar cada elemento de una lista uno por uno hasta encontrar el elemento deseado.

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

¿Cuál es el requisito fundamental para poder utilizar el algoritmo de búsqueda binaria?

A

La lista de objetos o elementos debe estar ordenada.

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

El algoritmo de búsqueda binaria funciona bajo un principio de _____ y _____.

A

divide y vencerás (divide and conquer)

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

Describe el proceso general de la búsqueda binaria.

A

Se inspecciona el elemento central, se descarta la mitad donde no puede estar el objetivo y se repite el proceso en la mitad restante.

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

¿Qué representa la notación Big O en el análisis de algoritmos?

A

Representa el peor escenario posible para el tiempo de ejecución de un algoritmo a medida que aumenta el tamaño de la entrada (n).

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

¿Qué representa la notación Omega (Ω) en el análisis de algoritmos?

A

Representa el mejor escenario posible para el tiempo de ejecución de un algoritmo.

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

¿Cuál es la complejidad de tiempo en el peor de los casos (Big O) para la búsqueda lineal en una lista de ‘n’ elementos?

A

O(n)

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

¿Cuál es la complejidad de tiempo en el peor de los casos (Big O) para la búsqueda binaria en una lista ordenada de ‘n’ elementos?

A

O(log n)

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

¿Cuál es la complejidad de tiempo en el mejor de los casos (Omega) para la búsqueda lineal y la búsqueda binaria?

A

Ω(1)

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

¿En qué escenario la búsqueda lineal podría ser más práctica que la búsqueda binaria?

A

Si la lista no está ordenada y solo se necesita buscar un elemento una vez, ya que ordenar la lista primero llevaría tiempo adicional.

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

Nombra los tres algoritmos de ordenamiento discutidos en la sección.

A

Merge sort (ordenamiento por mezcla), selection sort (ordenamiento por selección) y bubble sort (ordenamiento de burbuja).

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

¿Cuál es el enfoque principal del algoritmo de ordenamiento por mezcla (merge sort)?

A

Utiliza un enfoque de “divide y vencerás”, dividiendo el problema en partes más pequeñas y luego fusionándolas de forma ordenada y recursiva.

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

¿Cómo funciona el algoritmo de ordenamiento por selección (selection sort)?

A

Busca repetidamente el elemento más pequeño en la porción no ordenada de la lista y lo intercambia con el primer elemento de esa porción.

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

¿Cómo funciona el algoritmo de ordenamiento de burbuja (bubble sort)?

A

Compara repetidamente pares de elementos adyacentes y los intercambia si están en el orden incorrecto, moviendo los elementos más grandes hacia el final.

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

¿Cuál es la complejidad de tiempo en el peor de los casos (Big O) para bubble sort y selection sort?

A

O(n²)

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

¿Cuál es la complejidad de tiempo en el peor de los casos (Big O) para merge sort?

17
Q

¿Cuál es la complejidad de tiempo en el mejor de los casos (Omega) para el bubble sort?

18
Q

¿En qué situación el algoritmo bubble sort alcanza su mejor rendimiento de Ω(n)?

A

Cuando la lista de entrada ya está ordenada.

19
Q

¿Cuál es la complejidad de tiempo en el mejor de los casos (Omega) para selection sort y merge sort?

A

Ω(n²) para selection sort y Ω(n log n) para merge sort.

20
Q

En el experimento para identificar algoritmos de ordenamiento, ¿cómo se pudo identificar el merge sort?

A

Su tiempo de ejecución fue muy similar tanto en la lista ordenada (mejor caso) como en la invertida (peor caso).

21
Q

En el experimento para identificar algoritmos, ¿qué comportamiento delató al bubble sort?

A

Fue significativamente más rápido en la lista ya ordenada en comparación con la lista invertida.

22
Q

Concepto: struct en C

A

Definición: Una estructura de datos personalizada que agrupa múltiples variables, posiblemente de diferentes tipos, bajo un solo nombre.

23
Q

¿Qué palabra clave se utiliza en C, junto con struct, para crear un nuevo nombre de tipo para una estructura?

24
Q

Dentro de la definición de una struct, las variables que la componen se conocen como _____ o _____.

A

atributos o miembros (attributes or members)

25
Si has definido un tipo `struct` llamado `candidate`, ¿cómo declararías una variable de ese tipo llamada `president`?
`candidate president;`
26
¿Qué operador se utiliza para acceder a un miembro específico de una variable de tipo `struct`?
El operador de punto (.)
27
Para almacenar múltiples instancias de un tipo `struct`, como una lista de candidatos, ¿qué estructura de datos se puede utilizar?
Un arreglo (array).
28
¿Cuál es la sintaxis en C para declarar un arreglo llamado `lista` que puede contener 10 elementos del tipo `struct` `candidate`?
`candidate lista[10];`
29
En un arreglo de `structs` llamado `candidates`, ¿cómo accederías al miembro `votes` del tercer candidato en el arreglo?
`candidates[2].votes`
30
Para iterar y poblar un arreglo de `structs` con datos del usuario, la estructura de control más adecuada es un _____.
bucle `for` (for loop)
31
¿Qué es la recursión en el contexto de la programación?
Es un método donde la solución a un problema depende de soluciones a instancias más pequeñas del mismo problema, implementado por una función que se llama a sí misma.
32
¿Cuáles son los dos componentes esenciales de una función recursiva?
Un caso base y un caso recursivo.
33
¿Cuál es el propósito del "caso base" en una función recursiva?
Es la condición que detiene la recursión y proporciona una solución directa para la instancia más simple del problema.
34
¿Cuál es el propósito del "caso recursivo" en una función recursiva?
Es la parte de la función que reduce el problema y se llama a sí misma con una entrada modificada que se acerca al caso base.
35
El factorial de un número n (n!) se puede expresar de forma recursiva como n multiplicado por _____.
el factorial de (n-1)
36
¿Cuál es el caso base para la función factorial recursiva?
El factorial de 0, que por definición es 1.
37
En una función `factorial(n)` escrita en C, ¿cuál sería la línea de código para el caso recursivo?
`return n * factorial(n - 1);`
38
En el ejemplo del factorial, ¿qué sucede después de que la función alcanza el caso base (n=0)?
La cadena de llamadas comienza a "colapsar", devolviendo los valores calculados hacia arriba hasta llegar a la llamada original.