Eficiencia y pasos de un algoritmo repaso

Repaso de la eficiencia y pasos de un algoritmo, incluyendo conceptos clave, definiciones y diferencias que son relevantes para el examen de 2º de Bachillerato y la EBAU.

Sofia45·56 flashcards·56 frågor·1 visningar
bachilleratocomputer_sciencealgorithms
0
Kan
1 / 56
0
Övar
Framsida

¿Qué es un algoritmo?

Tryck för att vända
Baksida

Un algoritmo es un conjunto de instrucciones secuenciales que resuelven un problema específico.

Tryck för att vända
Kan
Övar fortfarande

Quiz(56 frågor)

Fråga 1 av 56

1. ¿Qué es un algoritmo?

Begrepp i det här studiesetet(56)

Conceptos Básicos de Algoritmos(16)

¿Qué es un algoritmo?

Un algoritmo es un conjunto de instrucciones secuenciales que resuelven un problema específico.

Tipos de algoritmos

- Algoritmos de búsqueda - Algoritmos de ordenación - Algoritmos recursivos

¿Qué es la notación Big O?

La notación Big O describe la complejidad temporal o espacial de un algoritmo en función del tamaño de la entrada.

¿Verdadero o falso? Un algoritmo siempre termina.

Verdadero. Por definición, un algoritmo debe terminar tras un número finito de pasos.

Complejidad de un algoritmo

Se refiere a la cantidad de recursos necesarios para ejecutar el algoritmo: tiempo y espacio.

¿Qué es un algoritmo recursivo?

Es un algoritmo que se llama a sí mismo para resolver subproblemas del problema original.

Complejidad temporal: O(n)\displaystyle O(n)

Indica que el tiempo de ejecución aumenta linealmente con el tamaño de la entrada.

Comparación: algoritmo de búsqueda lineal vs binaria.

Búsqueda lineal: O(n)\displaystyle O(n); Búsqueda binaria: O(extlogn)\displaystyle O( ext{log } n).

Llenar el espacio en blanco: Un algoritmo debe ser _____ y _____

Un algoritmo debe ser claro y finito.

¿Qué define un algoritmo eficiente?

Un algoritmo eficiente minimiza el tiempo de ejecución y el uso de recursos.

Ejemplo de algoritmo simple

Para sumar dos números: 1. Leer A, B. 2. Sumar A + B. 3. Mostrar resultado.

Diferencia entre algoritmo y programa

Un algoritmo es una solución abstracta; un programa es la implementación del algoritmo en un lenguaje de programación.

¿Qué es un pseudocódigo?

El pseudocódigo es una representación de un algoritmo en lenguaje natural que describe los pasos de manera informal.

¿Verdadero o falso? Todos los algoritmos son secuenciales.

Falso. Los algoritmos pueden ser secuenciales, ramificados o iterativos.

¿Qué es un algoritmo iterativo?

Es un algoritmo que utiliza bucles para repetir un conjunto de instrucciones hasta cumplir una condición.

Ejemplo de notación de un algoritmo

Inicio: Leer N; Para i desde 1 hasta N: Sumar i; Fin.

Eficiencia de Algoritmos(20)

¿Qué es la complejidad temporal?

Es la medida del tiempo que un algoritmo tarda en completarse según el tamaño de la entrada.

Complejidad espacial

Es la cantidad de memoria que utiliza un algoritmo en función del tamaño de la entrada.

O(1)

Indica que el tiempo de ejecución es constante, independiente del tamaño de la entrada.

O(n)

El tiempo de ejecución crece linealmente con el tamaño de la entrada. Ejemplo: recorrer un array.

O(n^2)

El tiempo de ejecución crece cuadráticamente. Ejemplo: algoritmo de burbuja, comparaciones anidadas.

Verdadero o falso: O(log n) es mejor que O(n).

Verdadero. O(log n) indica que el algoritmo se ejecuta mucho más rápido que O(n) para grandes entradas.

Comparación: Búsqueda lineal vs Búsqueda binaria.

Búsqueda lineal: O(n). Búsqueda binaria: O(log n). La segunda es más eficiente en listas ordenadas.

¿Qué significa 'exponencial' en complejidad?

Se refiere a un crecimiento muy rápido del tiempo de ejecución, como O(2^n).

¿Qué es la notación asintótica?

Es una forma de describir la complejidad de un algoritmo en el límite cuando el tamaño de entrada tiende a infinito.

Complejidad de espacio O(n)

El algoritmo utiliza espacio proporcional al tamaño de la entrada, como un array que guarda n elementos.

¿Qué describe un caso peor?

Es el tiempo máximo que puede tardar un algoritmo, considerando la entrada más desfavorable.

Rango de la notación Big O

Escribe el peor de los casos, por ejemplo, O(n) es mejor que O(n^2) en eficiencia.

Diferencia: Complejidad temporal y espacial.

Temporal: tiempo de ejecución. Espacial: memoria utilizada por el algoritmo.

Ejemplo de algoritmo O(log n)

La búsqueda binaria en un array ordenado, que divide la lista en mitades cada vez.

Razonamiento detrás de O(n log n)

Común en algoritmos de ordenación eficientes, como Merge Sort o Quick Sort.

¿Qué se entiende por 'ajuste de complejidad'?

Es la práctica de optimizar un algoritmo para mejorar su rendimiento en tiempo y espacio.

¿Qué es un algoritmo ineficiente?

Uno que tiene una alta complejidad temporal o espacial, lo que lo hace lento o que consume mucha memoria.

Complejidad constante vs lineal

Constante (O(1)): no depende de la entrada. Lineal (O(n)): depende del tamaño de la entrada.

Rango de tiempos de ejecución

- O(1) -> O(log n) -> O(n) -> O(n log n) -> O(n^2) -> O(2^n)

¿Qué indica la notación Big O?

Describe el comportamiento de un algoritmo en función del tamaño de la entrada, centrándose en el caso peor. Ejemplo: O(n) indica que el tiempo de ejecución crece linealmente con respecto al tamaño de la entrada.

Pasos en la Resolución de Problemas(12)

Definición de problema.

Un problema es una situación que requiere una solución específica. Puede involucrar datos y operaciones a realizar.

Pasos en la resolución de problemas.

1. Definición del problema 2. Análisis 3. Diseño del algoritmo 4. Implementación 5. Pruebas 6. Documentación

Verdadero o falso: El análisis se hace después del diseño.

Falso. El análisis se realiza antes del diseño para entender el problema.

¿Qué se busca en el análisis?

Identificar requisitos, restricciones y posibles soluciones. Se debe comprender el problema a fondo.

Ejemplo de implementación.

Dado el problema: Ordenar la lista [3, 1, 2]. Uso del algoritmo de burbuja: 1. Comparar 3 y 1, intercambiar. 2. Comparar 3 y 2, intercambiar. Lista final: [1, 2, 3].

Comparación: Diseño vs Implementación.

Diseño: Crear el algoritmo en pseudocódigo. Implementación: Traducir pseudocódigo a un lenguaje de programación.

Completar: La _______ consiste en evaluar el algoritmo.

La prueba consiste en evaluar el algoritmo. Es crucial para asegurar que funcione correctamente.

¿Qué se documenta?

Se documentan las decisiones tomadas, el funcionamiento del algoritmo y cualquier limitación o mejora futura.

Causa → Efecto: Buen diseño.

Causa: Un buen diseño Efecto: Un algoritmo más eficiente y fácil de implementar.

Ejemplo de un problema complejo.

Problema: Encontrar el camino más corto en un grafo. Pasos implicados: 1. Definición del grafo 2. Análisis del algoritmo de Dijkstra 3. Implementación y pruebas.

Fase crítica: Análisis.

Es esencial para descomponer el problema. Se identifican variables y se establece un enfoque para la solución.

El algoritmo se prueba en fase...

Durante la fase de pruebas, se verifica que el algoritmo funcione con diferentes entradas y cumpla su función.

Tipos de Algoritmos(8)

¿Qué es un algoritmo de búsqueda?

Un algoritmo diseñado para encontrar un elemento específico en una colección de datos. Ejemplos: búsqueda lineal y búsqueda binaria.

Comparación: algoritmos de ordenación vs búsqueda.

Ordenación: organiza datos. Búsqueda: encuentra datos. Ambos son fundamentales en la manipulación de datos.

Llenar el espacio: algoritmo de búsqueda _____ ayuda a encontrar un elemento en una lista ordenada.

bina

Verdadero o falso: Todos los algoritmos de ordenación son recursivos.

Falso. Existen algoritmos de ordenación iterativos como el método burbuja.

Ejemplo de algoritmo recursivo: _____ de Fibonacci.

Cálculo de la serie de Fibonacci: F(n)=F(n−1)+F(n−2)\displaystyle F(n) = F(n-1) + F(n-2) con F(0)=0\displaystyle F(0)=0, F(1)=1\displaystyle F(1)=1.

¿Qué caracteriza a un algoritmo de ordenación?

Organiza datos en un cierto orden (ascendente o descendente). Ejemplos: Quicksort, Mergesort, Heapsort.

Causa → Efecto: ¿Qué sucede si no se ordenan los datos antes de buscar?

La búsqueda puede ser ineficiente, especialmente en grandes conjuntos de datos.

¿Cómo se clasifica un algoritmo de búsqueda recursivo?

Se clasifica como búsqueda binaria, que divide el espacio de datos en mitades para reducir pasos.

Frågor i det här studiesetet(56)

1. ¿Qué es un algoritmo?

A.Un conjunto de instrucciones para resolver un problema.
B.Una función matemática compleja.
C.Un tipo de software de edición.
D.Una técnica de programación orientada a objetos.

2. ¿Qué describe la complejidad temporal de un algoritmo?

A.El tiempo que tarda en ejecutarse según el tamaño de la entrada.
B.La memoria utilizada durante su ejecución.
C.El número de pasos necesarios para implementar el algoritmo.
D.La cantidad de datos que puede procesar.

3. ¿Cuál es la primera etapa en la resolución de problemas?

A.Definición del problema
B.Análisis
C.Diseño del algoritmo
D.Implementación

4. ¿Qué describe mejor un algoritmo de ordenación?

A.Organiza elementos en un orden específico.
B.Aumenta la complejidad de la búsqueda.
C.Elimina duplicados de una lista.
D.Realiza cálculos matemáticos complejos.

5. ¿Cuál de los siguientes es un tipo de algoritmo?

A.Algoritmos de búsqueda
B.Algoritmos de visualización
C.Algoritmos de construcción
D.Algoritmos de diseño

6. ¿Qué es O(n^2)?

A.Un algoritmo que crece cuadráticamente con el tamaño de la entrada.
B.Un algoritmo que tiene un tiempo de ejecución constante.
C.Un algoritmo que crece linealmente.
D.Un algoritmo que aumenta exponencialmente.

7. En qué fase se identifican requisitos y restricciones del problema?

A.Diseño
B.Análisis
C.Implementación
D.Pruebas

8. ¿Cuál de los siguientes ejemplos NO es un algoritmo de búsqueda?

A.Búsqueda lineal
B.Búsqueda binaria
C.Método burbuja
D.Búsqueda interpolacional

9. ¿Qué describe la notación Big O?

A.La eficiencia temporal o espacial de un algoritmo.
B.El lenguaje de programación usado.
C.La cantidad de líneas de código.
D.El número de errores en un programa.

10. ¿Cuál es la principal ventaja de la búsqueda binaria sobre la búsqueda lineal?

A.Menor complejidad temporal en listas ordenadas.
B.Mayor consumo de memoria.
C.No requiere que la lista esté ordenada.
D.Es más fácil de implementar.

11. ¿Qué implica el diseño del algoritmo?

A.Crear el algoritmo en pseudocódigo
B.Ejecutar el algoritmo
C.Documentar el proceso
D.Probar el algoritmo

12. ¿Qué característica define a un algoritmo recursivo?

A.Llama a sí mismo con un caso más simple.
B.Utiliza bucles para repetir procesos.
C.Requiere menos memoria que un algoritmo iterativo.
D.Siempre tiene un tiempo de ejecución constante.

13. ¿Verdadero o falso? Un algoritmo puede no terminar.

A.Falso.
B.Verdadero.
C.Depende del algoritmo.
D.Solo en algoritmos recursivos.

14. ¿Qué representa O(1)?

A.Complejidad constante, independiente del tamaño de la entrada.
B.Complejidad lineal.
C.Complejidad logarítmica.
D.Complejidad cuadrática.

15. ¿Cuál es el último paso en la resolución de problemas?

A.Implementación
B.Documentación
C.Pruebas
D.Análisis

16. Si un conjunto de datos no está ordenado, ¿qué impacto tiene en la búsqueda?

A.La búsqueda se vuelve más eficiente.
B.La búsqueda se vuelve ineficiente.
C.No afecta la eficiencia de la búsqueda.
D.Mejora la tasa de éxito en resultados.

17. ¿Qué indica la complejidad de un algoritmo?

A.La cantidad de recursos necesarios para ejecutarlo.
B.El tipo de datos que procesa.
C.La velocidad del ordenador donde se ejecuta.
D.La duración de la ejecución.

18. ¿Qué caracteriza a un algoritmo ineficiente?

A.Alta complejidad temporal o espacial.
B.Bajo uso de memoria.
C.Ejecución rápida en todos los casos.
D.Simplicidad en la implementación.

19. ¿En qué fase se verifica que el algoritmo funcione correctamente?

A.Análisis
B.Pruebas
C.Implementación
D.Diseño

20. ¿Cuál de las siguientes afirmaciones sobre la búsqueda binaria es correcta?

A.Requiere que la lista esté ordenada.
B.Siempre encuentra un elemento en un solo paso.
C.No es recursiva ni iterativa.
D.Funciona en listas desordenadas.

21. ¿Qué es un algoritmo recursivo?

A.Un algoritmo que se llama a sí mismo.
B.Un algoritmo que utiliza bucles.
C.Un algoritmo que no termina.
D.Un algoritmo que se ejecuta en paralelo.

22. ¿Qué significa O(log n)?

A.El tiempo de ejecución crece logarítmicamente con el tamaño de la entrada.
B.El tiempo de ejecución crece de manera lineal.
C.El algoritmo es ineficiente.
D.El algoritmo tiene complejidad cuadrática.

23. ¿Qué se hace durante la implementación?

A.Se crea el algoritmo en teoría
B.Se traduce el pseudocódigo a un lenguaje de programación
C.Se evalúa el algoritmo
D.Se identifican problemas

24. ¿Cuál es el propósito principal de un algoritmo de búsqueda?

A.Encontrar un elemento específico en una colección de datos.
B.Eliminar elementos duplicados.
C.Ordenar una colección de datos.
D.Calcular la suma de todos los elementos.

25. La notación O(n)\displaystyle O(n) se refiere a:

A.Tiempo de ejecución lineal.
B.Tiempo de ejecución cuadrático.
C.Tiempo de ejecución logarítmico.
D.Espacio de memoria constante.

26. ¿Cuál de las siguientes opciones NO es un ejemplo de O(n)?

A.Recorrer todos los elementos de un array.
B.Sumar todos los elementos de una lista.
C.Ordenar un array usando Quick Sort.
D.Buscar un elemento en una lista sin ordenar.

27. ¿Cuál de las siguientes opciones NO es un paso en la resolución de problemas?

A.Definición del problema
B.Análisis
C.Optimización
D.Implementación

28. ¿Qué tipo de algoritmo es el Quicksort?

A.Algoritmo de ordenación.
B.Algoritmo de búsqueda.
C.Algoritmo de compresión.
D.Algoritmo de cifrado.

29. Comparar búsqueda lineal y búsqueda binaria: ¿cuál es verdadero?

A.La búsqueda binaria es más rápida y tiene complejidad O(extlogn)\displaystyle O( ext{log } n).
B.La búsqueda lineal siempre es más rápida.
C.Ambas tienen la misma complejidad.
D.La búsqueda binaria no funciona en listas ordenadas.

30. ¿Qué se entiende por 'caso peor' en un algoritmo?

A.El tiempo máximo que puede tardar el algoritmo.
B.El tiempo mínimo que puede tardar el algoritmo.
C.El promedio de tiempo en diferentes entradas.
D.El tiempo en un caso específico.

31. La fase de análisis se puede considerar como:

A.La más sencilla
B.La más crítica
C.La más rápida
D.La más innecesaria

32. En un algoritmo de búsqueda lineal, ¿cómo se procede?

A.Se revisa cada elemento uno por uno.
B.Se divide la lista en mitades repetidamente.
C.Se ordenan los datos antes de buscar.
D.Se utilizan índices para acceder rápidamente.

33. Completa la frase: Un algoritmo debe ser _____ y _____

A.claro y finito.
B.rápido y complejo.
C.abstracto y visual.
D.aleatorio y variable.

34. ¿Qué significa la notación asintótica?

A.Describe el comportamiento de un algoritmo conforme el tamaño de entrada tiende a infinito.
B.Mide la eficiencia de un algoritmo en su ejecución inicial.
C.Indica el límite superior de la memoria utilizada.
D.Es un método para validar la entrada de datos.

35. ¿Cuál es un ejemplo de un problema que podría requerir varios pasos?

A.Ordenar una lista
B.Sumar dos números
C.Encontrar el camino más corto en un grafo
D.Calcular un promedio

36. ¿Qué define un algoritmo eficiente?

A.Minimiza tiempo de ejecución y uso de recursos.
B.Requiere pocos pasos.
C.Es fácil de entender.
D.Funciona en cualquier lenguaje de programación.

37. ¿Qué caracteriza a O(n log n)?

A.Suele aparecer en algoritmos de ordenación eficientes.
B.Es siempre más lento que O(n^2).
C.Es una complejidad constante.
D.No se utiliza en programación.

38. ¿Qué es lo que se documenta en el proceso de resolución de problemas?

A.Solo el código final
B.Las decisiones tomadas y el funcionamiento
C.Los errores cometidos
D.Nada, es innecesario

39. ¿Cuál es un ejemplo de un algoritmo simple?

A.Sumar dos números.
B.Resolver ecuaciones diferenciales.
C.Compilar un programa.
D.Implementar inteligencia artificial.

40. ¿Cuál de las siguientes afirmaciones es verdadera?

A.O(log n) es más eficiente que O(n) para grandes entradas.
B.O(n^2) es mejor que O(n).
C.O(n) es lo mismo que O(n^2).
D.O(2^n) es más eficiente que O(n).

41. ¿Qué relación hay entre un buen diseño y la eficiencia del algoritmo?

A.No hay relación
B.Un buen diseño puede llevar a un algoritmo más eficiente
C.Un buen diseño es solo estético
D.La eficiencia depende únicamente de la programación

42. ¿Cuál es la diferencia entre un algoritmo y un programa?

A.Un algoritmo es abstracto; un programa es su implementación.
B.Un algoritmo es siempre más complejo que un programa.
C.Un programador no necesita algoritmos.
D.Ambos son lo mismo.

43. ¿Cómo se compara la complejidad temporal y la complejidad espacial?

A.La temporal se refiere al tiempo de ejecución, mientras que la espacial se refiere a la memoria utilizada.
B.Ambas son lo mismo.
C.La espacial es más importante que la temporal.
D.La temporal se mide solo al inicio de la ejecución.

44. Durante la fase de pruebas, ¿qué aspecto se evalúa principalmente?

A.La calidad del código
B.El funcionamiento del algoritmo con diferentes entradas
C.La velocidad de implementación
D.El análisis previo realizado

45. ¿Qué es un pseudocódigo?

A.Una forma informal de representar un algoritmo.
B.Un código fuente en un lenguaje de programación.
C.Un tipo de algoritmo complicado.
D.Un software de desarrollo.

46. ¿Qué tipo de algoritmo es un algoritmo de burbuja?

A.O(n^2).
B.O(log n).
C.O(n).
D.O(1).

47. ¿Verdadero o falso? Todos los algoritmos son secuenciales.

A.Falso.
B.Verdadero.
C.Solo los simples.
D.Solo los complejos.

48. ¿Qué significa 'ajuste de complejidad'?

A.Optimización del rendimiento de un algoritmo.
B.Implementación de algoritmos en múltiples lenguajes.
C.Eliminación de errores en el código.
D.Aumento del tamaño de la entrada.

49. ¿Qué es un algoritmo iterativo?

A.Un algoritmo que repite instrucciones hasta que se cumple una condición.
B.Un algoritmo que se llama a sí mismo.
C.Un algoritmo que no finaliza.
D.Un algoritmo que solo se ejecuta una vez.

50. ¿Qué indica la notación Big O?

A.El comportamiento de un algoritmo en función del tamaño de la entrada.
B.La cantidad de memoria total utilizada.
C.El número de elementos en la lista.
D.La velocidad de la CPU.

51. Un ejemplo de notación de un algoritmo sería:

A.Inicio: Leer N; Para i desde 1 hasta N: Sumar i; Fin.
B.N = 0; Mientras N < 10: N++; Fin.
C.Leer dato; Si dato > 0: Mostrar 'Positivo'; Fin.
D.Escribir 'Hola'; Fin.

52. ¿Cuál es el rango correcto de tiempos de ejecución en orden de eficiencia?

A.O(1) -> O(log n) -> O(n) -> O(n log n) -> O(n^2) -> O(2^n)
B.O(n^2) -> O(n log n) -> O(n) -> O(1) -> O(log n) -> O(2^n)
C.O(log n) -> O(1) -> O(n) -> O(n^2) -> O(n log n) -> O(2^n)
D.O(n log n) -> O(1) -> O(2^n) -> O(n) -> O(log n) -> O(n^2)

53. ¿Qué tipo de algoritmo puede ser ineficiente en la búsqueda de datos?

A.Búsqueda lineal en una lista no ordenada.
B.Búsqueda binaria en una lista ordenada.
C.Uso de un hash table.
D.Búsqueda en un array ordenado.

54. ¿Qué representa la complejidad espacial O(n)?

A.Indica que la memoria utilizada es proporcional al tamaño de la entrada.
B.Se refiere a un algoritmo que no utiliza memoria adicional.
C.Describe un algoritmo que se ejecuta en tiempo constante.
D.Es un tipo de algoritmo que aumenta su uso de memoria de manera exponencial.

55. ¿Cuál de las siguientes afirmaciones es correcta sobre O(2^n)?

A.Es un algoritmo de complejidad lineal.
B.Indica un crecimiento exponencial del tiempo de ejecución.
C.Es más eficiente que O(n).
D.Se considera un algoritmo eficiente.

56. En un algoritmo de búsqueda lineal, ¿qué representa su complejidad?

A.O(n^2)
B.O(log n)
C.O(n)
D.O(1)

Relaterade studieset

Skapa ditt eget studieset

Ladda upp en PDF, klistra in dina anteckningar eller beskriv ett ämne – AI genererar flashcards, quiz och mer på några sekunder.