-
Notifications
You must be signed in to change notification settings - Fork 0
Ejercicio
- Hacer un Fork al repositorio personal de cada uno.
- Tomar un issue del proyecto. https://github.com/users/devconker22/projects/2
- Descargar localmente el proyecto de cada repositorio personal.
- Iniciar el gitflow.
- Iniciar un Feature con el nombre del issue tomado. Ejemplo GF-01.
- Codificar el algoritmo tomado.
- Subir los cambios al repositorio personal.
- Enviar PR.
- Hacer las modificaciones necesarias.
- Volver a enviar PR.
- Aceptar PR.
- Hacer rama Release cuando hayan sido terminado todos los features.
- Hacer Marge a master.
-
Bubble Sort (Ordenamiento de burbuja): Este es un algoritmo simple que recorre la lista repetidamente y compara elementos adyacentes, intercambiándolos si están en el orden incorrecto. Aunque es fácil de entender, no es eficiente en términos de tiempo y generalmente no se utiliza en aplicaciones prácticas para conjuntos de datos grandes.
-
Insertion Sort (Ordenamiento por inserción): Este algoritmo construye la lista ordenada uno a uno, moviendo elementos no ordenados hacia la posición correcta en la lista ordenada. Es eficiente para conjuntos de datos pequeños.
-
Selection Sort (Ordenamiento por selección): En este algoritmo, se busca el elemento mínimo de la lista y se coloca al principio. Luego, se busca el siguiente elemento mínimo y se coloca en la posición siguiente, y así sucesivamente. Es simple pero ineficiente en comparación con otros algoritmos.
-
Merge Sort (Ordenamiento por mezcla): Este algoritmo utiliza la técnica de "dividir y conquistar". Divide la lista en mitades, ordena cada mitad y luego combina las dos mitades ordenadas en una sola lista ordenada. Es eficiente y estable, incluso para grandes conjuntos de datos.
-
Quick Sort (Ordenamiento rápido): Al igual que Merge Sort, Quick Sort utiliza la técnica de "dividir y conquistar". Se elige un elemento pivote y se divide la lista en dos subconjuntos: elementos menores que el pivote y elementos mayores que el pivote. Luego, se ordenan los subconjuntos y se combinan. Es eficiente y a menudo más rápido que Merge Sort en la práctica.
-
Heap Sort (Ordenamiento por montículos): Este algoritmo utiliza un montículo (heap) para organizar los elementos. Crea un montículo máximo (o mínimo) a partir de la lista y extrae repetidamente el elemento principal (máximo o mínimo) hasta que la lista esté ordenada. Es eficiente y tiene una complejidad de tiempo de O(n log n).
-
Counting Sort (Ordenamiento por cuenta): Este algoritmo es adecuado para conjuntos de datos con valores enteros dentro de un rango específico. Cuenta la frecuencia de cada elemento y utiliza esa información para ordenar los elementos. Es eficiente cuando se cumplen sus condiciones de uso.
-
Radix Sort (Ordenamiento por raíz): Radix Sort es útil para ordenar números enteros o cadenas alfabéticas. Se basa en la idea de ordenar los elementos por sus dígitos o caracteres más significativos y luego combinarlos. Es eficiente para conjuntos de datos grandes y tiene una complejidad de tiempo lineal.