Unidad 6. Análisis de la eficiencia en algoritmos
6.2 Análisis de la eficiencia en algoritmos simples
La eficiencia de un algoritmo se refiere a la capacidad de realizar una tarea específica de manera rápida y con un uso eficiente de los recursos disponibles, como tiempo y memoria, dentro del análisis de la eficiencia de algoritmos simples se encuentran los algoritmos de "Búsqueda Secuencial" y el "Ordenamiento por Inserción“. Algunas características son: - Los algoritmos simples suelen tener estructuras lógicas y de control sencillas. Son fáciles de entender y de implementar.
- Se componen generalmente de operaciones básicas y directas. No involucran muchas operaciones intrincadas.
- Requieren relativamente pocos pasos para completarse. La secuencia de instrucciones es clara y concisa.
- Suelen utilizarse para tareas específicas y de menor complejidad.
Desventajas
Ventajas
Para ver la información, da clic en cada círculo.
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.1 Algoritmo de búsqueda secuencial
La búsqueda secuencial o lineal, se emplea en una colección de registros, por ejemplo, una lista con un algoritmo básico de búsqueda secuencial que comienza desde el inicio de la lista y recorre cada registro secuencialmente hasta hallar la clave especificada (n), llegar al final de la lista. En caso de que la búsqueda concluya sin encontrar la clave, se deduce que el registro buscado no está presente en la lista.
Este método implica recorrer la colección de registros elemento por elemento y comparar cada elemento con el valor buscado (clave). Comienza desde la primera casilla y examina una casilla tras otra hasta encontrar el elemento deseado o haber revisado todas las casillas. El resultado de la búsqueda es un único valor: la posición del elemento buscado o cero, indicando que el elemento no está presente. Dado que la lista o arreglo no sigue ningún orden específico, la probabilidad de encontrar el valor en la primera casilla es la misma que en la última.
Este método de búsqueda lineal funciona de manera eficiente para listas o arreglos pequeños, ya que su simplicidad y capacidad para manejar colecciones sin restricciones de orden lo hacen adecuado en escenarios donde la complejidad de otros algoritmos no justificaría su implementación. El rendimiento de este algoritmo depende directamente del tamaño de la lista y la posición del elemento buscado.
Para ver la información, , da clic en la palabra ejemplo.
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.1 Algoritmo de búsqueda secuencial
A continuación, se muestra una implementación del algoritmo de búsqueda secuencial. La función busqueda secuencial recibe una lista y un número objetivo como argumentos. Luego, itera sobre la lista y compara cada elemento con el valor deseado (objetivo). Los resultados esperados pueden ser: - Si encuentra el objetivo, devuelve la posición
- Si recorre toda la lista y no encuentra el objetivo, devuelve -1
En el ejemplo de uso, se busca el número 9. Dado que la indexación de listas en Python comienza desde 0, al finalizar la ejecución del programa, obtendríamos la posición 4.
Para ver la información, , da clic en cada imagen.
Para ver la información, , da clic en la imagen.
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.1 Algoritmo de búsqueda secuencial
Reproduce el siguiente material audiovisual, fortalecerás tu comprensión al implementar el algoritmo de búsqueda secuencial en diferentes lenguajes de programación.
Programaçión ATS (2016, 31 de mayo) 53. Programación en C++ || Búsquedas || Búsqueda Secuencial en un arreglo [video] YouTube https://www.youtube.com/watch?v=_On-0W0-6vQ
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.2 Algoritmo de ordenamiento por inserción
El algoritmo de ordenamiento por inserción es un algoritmo eficiente para ordenar una lista o un array. Funciona construyendo una secuencia ordenada de elementos uno por uno, tomando cada elemento e insertándolo en su lugar correcto dentro de la parte ordenada de la lista .
Un ejemplo en la vida real se puede dar al imaginar una persona dentro de una biblioteca que decide organizar los libros de manera que estén ordenados alfabéticamente por el autor, inicia con un estante vacío y comienza a colocar libros uno por uno.
De manera inicial, toma el primer libro y lo coloca en el estante, ya que no hay otros libros para comparar.
Después, toma el segundo libro y determina su posición en relación con el primero. Si es necesario, intercambia su posición para asegurar el orden alfabético.
Repite este proceso con cada libro sucesivo. Para cada nuevo libro, lo compara con los que ya están en el estante y lo coloca en su posición correcta.
Continúa tomando libros y colocándolos en el estante, asegurándose de que cada nuevo libro esté en el lugar adecuado para mantener el orden alfabético.
Este proceso imita el algoritmo de ordenamiento por inserción donde cada libro nuevo es como un elemento no ordenado que se inserta en la estantería, la comparación con los libros existentes determina su ubicación final. Al finalizar, la estantería tendrá todos los libros organizados por autor.
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.2 Algoritmo de ordenamiento por inserción
Ejemplo. Ordenamiento por inserción de una lista de enteros.
Para ver la información, pasa el cursor sobre cada imagen.
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.2 Algoritmo de ordenamiento por inserción
A continuación, se muestra una implementación del algoritmo de ordenamiento por inserción. La función ordenamiento_insercion toma una lista como argumento y la ordena en su lugar. La lógica del algoritmo consiste en comparar cada elemento con los elementos anteriores y cambiarlos de posición hasta que la lista esté ordenada.
Para ver la información, da clic en la palabra ejemplo.
Reproduce el siguiente material audiovisual, fortalecerás tu comprensión del algoritmo de ordenamiento por inserción: KhanAcademyEspañol (2014, 12 de enero) Algoritmo de ordenamiento por inserción [video] YouTube https://www.youtube.com/watch?v=bB8Px8D9QdQ
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.3 Eficiencia de tiempo en algoritmos
Cuando una computadora requiere un tiempo considerable para resolver un problema, no solo demanda recursos, sino que también priva al usuario del tiempo que podría invertir en otras tareas más productivas. La eficiencia de tiempo se analiza para entender cómo el rendimiento de un algoritmo varía a medida que la entrada crece y para identificar qué tan rápido o lentamente se ejecuta en relación con el tamaño de los datos.
Es posible categorizar el tiempo de ejecución de un algoritmo según cómo aumenta el número de pasos conforme crece el tamaño de su entrada, con el fin de verificar la eficiencia de tiempo en los algoritmos.
Para ver la información, da clic en cada imagen..
Desventajas
- La principal desventaja es su deficiencia en listas grandes, ya que conforme el tamaño de la lista aumenta, el tiempo de ejecución crece.
- Si los elementos a buscar no son únicos, el tiempo de ejecución y consumo de recursos es muy grande.
- Si el elemento a buscar se encuentra al final o no existe, el algoritmo recorrerá toda la lista.
Ventajas
- La implementación de la búsqueda secuencial es directa y fácil de entender.
- No requiere que los elementos estén ordenados de forma específica.
- Puede utilizarse en múltiples tipos de datos.
Ejemplo. Búsqueda ordenamiento por inserción en Python
Desventajas
- Pueden no ser adecuados para abordar problemas complejos o conjuntos de datos grandes, ya que su simplicidad puede resultar en una eficiencia limitada.
- En comparación con algoritmos más avanzados, los algoritmos simples pueden tener un rendimiento inferior en escenarios más exigentes.
Ejemplo. Recorrido de una búsqueda secuencial en una lista de números enteros en búsqueda de un valor inexistente en la colección (lista).
Ejemplo. Recorrido de una búsqueda secuencial en una lista de números enteros en búsqueda de un valor existente (54) en la colección (lista).
Ejemplo. Búsqueda secuencial en Python
Tiempo lineal
Cuando un algoritmo corre en tiempo lineal, su número de pasos crece en proporción directa al tamaño de la entrada. Se denota como O(n), donde "n" es el tamaño de la entrada.
Tiempo cuadráticoEl tiempo de ejecución de un algoritmo crece de manera cuadrática con el tamaño de la entrada. Se denota como O(n^2), donde "n" es el tamaño de la entrada.
Ese algoritmo comienza desde la cabeza de la lista, continúa buscando el siguiente valor más pequeño en la lista y lo intercambia con el valor actual
Ventajas
- Dada su simplicidad, los algoritmos simples pueden ser implementados rápidamente, lo que es beneficioso en situaciones donde se requiere una solución rápida.
- Facilidad para mantener y entender, lo que facilita la corrección de errores y la realización de actualizaciones.
- Suelen requerir menos recursos computacionales en conjuntos de datos menores.
Tiempo logarítmico
El tiempo de ejecución de un algoritmo crece de manera logarítmica con el tamaño de la entrada. Se denota como O(log n), donde "n" es el tamaño de la entrada. El algoritmo de búsqueda binaria es un algoritmo que corre en tiempo logarítmico.
Tiempo constanteEl tiempo de ejecución de un algoritmo es constante, independientemente del tamaño de la entrada, y se denota como O(1), donde "O" representa la notación de orden de magnitud, cuando un algoritmo opera en tiempo constante, significa que siempre realiza un número fijo de pasos, sin importar cuánto aumente el tamaño de la entrada.
Aunque un tiempo constante es ideal, típicamente no es alcanzable para algoritmos que procesan múltiples fragmentos de datos.
S5_IP_6.2
Equipo diseño curricular-UTECA
Created on June 10, 2025
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Terrazzo Presentation
View
Visual Presentation
View
Relaxing Presentation
View
Modern Presentation
View
Colorful Presentation
View
Modular Structure Presentation
View
Chromatic Presentation
Explore all templates
Transcript
Unidad 6. Análisis de la eficiencia en algoritmos
6.2 Análisis de la eficiencia en algoritmos simples
La eficiencia de un algoritmo se refiere a la capacidad de realizar una tarea específica de manera rápida y con un uso eficiente de los recursos disponibles, como tiempo y memoria, dentro del análisis de la eficiencia de algoritmos simples se encuentran los algoritmos de "Búsqueda Secuencial" y el "Ordenamiento por Inserción“. Algunas características son:- Los algoritmos simples suelen tener estructuras lógicas y de control sencillas. Son fáciles de entender y de implementar.
- Se componen generalmente de operaciones básicas y directas. No involucran muchas operaciones intrincadas.
- Requieren relativamente pocos pasos para completarse. La secuencia de instrucciones es clara y concisa.
- Suelen utilizarse para tareas específicas y de menor complejidad.
Desventajas
Ventajas
Para ver la información, da clic en cada círculo.
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.1 Algoritmo de búsqueda secuencial
La búsqueda secuencial o lineal, se emplea en una colección de registros, por ejemplo, una lista con un algoritmo básico de búsqueda secuencial que comienza desde el inicio de la lista y recorre cada registro secuencialmente hasta hallar la clave especificada (n), llegar al final de la lista. En caso de que la búsqueda concluya sin encontrar la clave, se deduce que el registro buscado no está presente en la lista.
Este método implica recorrer la colección de registros elemento por elemento y comparar cada elemento con el valor buscado (clave). Comienza desde la primera casilla y examina una casilla tras otra hasta encontrar el elemento deseado o haber revisado todas las casillas. El resultado de la búsqueda es un único valor: la posición del elemento buscado o cero, indicando que el elemento no está presente. Dado que la lista o arreglo no sigue ningún orden específico, la probabilidad de encontrar el valor en la primera casilla es la misma que en la última. Este método de búsqueda lineal funciona de manera eficiente para listas o arreglos pequeños, ya que su simplicidad y capacidad para manejar colecciones sin restricciones de orden lo hacen adecuado en escenarios donde la complejidad de otros algoritmos no justificaría su implementación. El rendimiento de este algoritmo depende directamente del tamaño de la lista y la posición del elemento buscado.
Para ver la información, , da clic en la palabra ejemplo.
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.1 Algoritmo de búsqueda secuencial
A continuación, se muestra una implementación del algoritmo de búsqueda secuencial. La función busqueda secuencial recibe una lista y un número objetivo como argumentos. Luego, itera sobre la lista y compara cada elemento con el valor deseado (objetivo). Los resultados esperados pueden ser:
- Si encuentra el objetivo, devuelve la posición
- Si recorre toda la lista y no encuentra el objetivo, devuelve -1
En el ejemplo de uso, se busca el número 9. Dado que la indexación de listas en Python comienza desde 0, al finalizar la ejecución del programa, obtendríamos la posición 4.Para ver la información, , da clic en cada imagen.
Para ver la información, , da clic en la imagen.
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.1 Algoritmo de búsqueda secuencial
Reproduce el siguiente material audiovisual, fortalecerás tu comprensión al implementar el algoritmo de búsqueda secuencial en diferentes lenguajes de programación. Programaçión ATS (2016, 31 de mayo) 53. Programación en C++ || Búsquedas || Búsqueda Secuencial en un arreglo [video] YouTube https://www.youtube.com/watch?v=_On-0W0-6vQ
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.2 Algoritmo de ordenamiento por inserción
El algoritmo de ordenamiento por inserción es un algoritmo eficiente para ordenar una lista o un array. Funciona construyendo una secuencia ordenada de elementos uno por uno, tomando cada elemento e insertándolo en su lugar correcto dentro de la parte ordenada de la lista .
Un ejemplo en la vida real se puede dar al imaginar una persona dentro de una biblioteca que decide organizar los libros de manera que estén ordenados alfabéticamente por el autor, inicia con un estante vacío y comienza a colocar libros uno por uno. De manera inicial, toma el primer libro y lo coloca en el estante, ya que no hay otros libros para comparar. Después, toma el segundo libro y determina su posición en relación con el primero. Si es necesario, intercambia su posición para asegurar el orden alfabético. Repite este proceso con cada libro sucesivo. Para cada nuevo libro, lo compara con los que ya están en el estante y lo coloca en su posición correcta. Continúa tomando libros y colocándolos en el estante, asegurándose de que cada nuevo libro esté en el lugar adecuado para mantener el orden alfabético.
Este proceso imita el algoritmo de ordenamiento por inserción donde cada libro nuevo es como un elemento no ordenado que se inserta en la estantería, la comparación con los libros existentes determina su ubicación final. Al finalizar, la estantería tendrá todos los libros organizados por autor.
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.2 Algoritmo de ordenamiento por inserción
Ejemplo. Ordenamiento por inserción de una lista de enteros.
Para ver la información, pasa el cursor sobre cada imagen.
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.2 Algoritmo de ordenamiento por inserción
A continuación, se muestra una implementación del algoritmo de ordenamiento por inserción. La función ordenamiento_insercion toma una lista como argumento y la ordena en su lugar. La lógica del algoritmo consiste en comparar cada elemento con los elementos anteriores y cambiarlos de posición hasta que la lista esté ordenada.
Para ver la información, da clic en la palabra ejemplo.
Reproduce el siguiente material audiovisual, fortalecerás tu comprensión del algoritmo de ordenamiento por inserción: KhanAcademyEspañol (2014, 12 de enero) Algoritmo de ordenamiento por inserción [video] YouTube https://www.youtube.com/watch?v=bB8Px8D9QdQ
Unidad 6. Análisis de la eficiencia en algoritmos
6.2.3 Eficiencia de tiempo en algoritmos
Cuando una computadora requiere un tiempo considerable para resolver un problema, no solo demanda recursos, sino que también priva al usuario del tiempo que podría invertir en otras tareas más productivas. La eficiencia de tiempo se analiza para entender cómo el rendimiento de un algoritmo varía a medida que la entrada crece y para identificar qué tan rápido o lentamente se ejecuta en relación con el tamaño de los datos. Es posible categorizar el tiempo de ejecución de un algoritmo según cómo aumenta el número de pasos conforme crece el tamaño de su entrada, con el fin de verificar la eficiencia de tiempo en los algoritmos.
Para ver la información, da clic en cada imagen..
Desventajas
Ventajas
Ejemplo. Búsqueda ordenamiento por inserción en Python
Desventajas
Ejemplo. Recorrido de una búsqueda secuencial en una lista de números enteros en búsqueda de un valor inexistente en la colección (lista).
Ejemplo. Recorrido de una búsqueda secuencial en una lista de números enteros en búsqueda de un valor existente (54) en la colección (lista).
Ejemplo. Búsqueda secuencial en Python
Tiempo lineal Cuando un algoritmo corre en tiempo lineal, su número de pasos crece en proporción directa al tamaño de la entrada. Se denota como O(n), donde "n" es el tamaño de la entrada.
Tiempo cuadráticoEl tiempo de ejecución de un algoritmo crece de manera cuadrática con el tamaño de la entrada. Se denota como O(n^2), donde "n" es el tamaño de la entrada. Ese algoritmo comienza desde la cabeza de la lista, continúa buscando el siguiente valor más pequeño en la lista y lo intercambia con el valor actual
Ventajas
Tiempo logarítmico El tiempo de ejecución de un algoritmo crece de manera logarítmica con el tamaño de la entrada. Se denota como O(log n), donde "n" es el tamaño de la entrada. El algoritmo de búsqueda binaria es un algoritmo que corre en tiempo logarítmico.
Tiempo constanteEl tiempo de ejecución de un algoritmo es constante, independientemente del tamaño de la entrada, y se denota como O(1), donde "O" representa la notación de orden de magnitud, cuando un algoritmo opera en tiempo constante, significa que siempre realiza un número fijo de pasos, sin importar cuánto aumente el tamaño de la entrada. Aunque un tiempo constante es ideal, típicamente no es alcanzable para algoritmos que procesan múltiples fragmentos de datos.