Skip to content

Ejercicio

devconker22 edited this page Sep 19, 2023 · 1 revision

Pasos a seguir

  1. Hacer un Fork al repositorio personal de cada uno.
  2. Tomar un issue del proyecto. https://github.com/users/devconker22/projects/2
  3. Descargar localmente el proyecto de cada repositorio personal.
  4. Iniciar el gitflow.
  5. Iniciar un Feature con el nombre del issue tomado. Ejemplo GF-01.
  6. Codificar el algoritmo tomado.
  7. Subir los cambios al repositorio personal.
  8. Enviar PR.
  9. Hacer las modificaciones necesarias.
  10. Volver a enviar PR.
  11. Aceptar PR.
  12. Hacer rama Release cuando hayan sido terminado todos los features.
  13. Hacer Marge a master.

Descripción de los algoritmos.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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).

  7. 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.

  8. 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.

Clone this wiki locally