ProAlgos: C++
Este proyecto está enfocado a implementar algoritmos y estructuras de datos en C++, siguiendo buenas prácticas de ingeniería de software , tales como:
- Escribir código bien documentado
- Cumplir con las pautas del código
- Redactar y aprobar pruebas unitarias.
- Revisando el código de cada uno
Objetivos
- Implementar algoritmos y estructuras de datos.
- Aprenda a ser mejores desarrolladores de software
- Orientarse unos a otros sobre control de versiones, pruebas unitarias y algoritmos.
Cómo involucrarse
Hay algunas maneras de involucrarse.
¿Quieres contribuir al código abierto e involucrarte en el proyecto?
- Lea las pautas de contribución
- Bifurcar el repositorio
- Cree un problema que describa lo que le gustaría agregar o reclame un problema que esté disponible
- Crea una rama y agrega tu código
- Envíe una solicitud de extracción y haga referencia al problema que cierra
Puede encontrar más detalles sobre los pasos anteriores en las pautas de contribución, así que asegúrese de consultarlas.
¿Solo quiere sugerir un nuevo algoritmo o informar un error?
Cree un nuevo problema y lo manejaremos desde allí. ?
Contenido
✅ = tiene pruebas unitarias
Algoritmos
Retroceder
Programación dinámica
- 0-1 mochila ✅
- Cambio de moneda ✅
- Subsecuencia decreciente más larga ✅
- Multiplicación de cadenas de matrices ✅
- Subarreglo contiguo de suma máxima: algoritmo de Kadane ✅
- Corte de varilla ✅
- Selección de actividad ponderada ✅
Teoría de números
- Coeficiente binomial ✅
- Algoritmos euclidianos
- Máximo común divisor (MCD) ✅
- Algoritmo euclidiano extendido (coeficientes de Bézout) ✅
- Rápida exponenciación ✅
- Enésimo número de Fibonacci
- Algoritmo de tiempo lineal ✅
- Algoritmo de tiempo logarítmico ✅
- Comprobación de números perfectos ✅
- numeros primos
- Primordial ✅
- Tamiz de Eratóstenes (simple) ✅
Búsqueda
- Búsqueda binaria ✅
- Búsqueda lineal ✅
- Búsqueda ternaria ✅
Clasificación
- Clasificación de burbujas ✅
- Clasificación de cubos ✅
- Clasificación de peine ✅
- Clasificación de conteo (estable) ✅
- Clasificación de montón ✅
- Clasificación por inserción ✅
- Combinar ordenar ✅
- Clasificación rápida ✅
- Ordenación por base
- Orden de selección ✅
- Tipo de concha ✅
Cadena
- Subsecuencia común más larga ✅
- Búsqueda (coincidencia de patrones)
- Editar problema de distancia ✅
- Patio de maniobras ✅
- Permutación
Estructuras de datos
Lista enlazada
- Lista enlazada individualmente ✅
- Lista doblemente enlazada ✅
Cola
Colocar
Pila
Árbol
- Árbol de búsqueda binaria ✅
- Árbol Fenwick ✅
Compilando
Para compilar los archivos fuente, ejecute make
desde el directorio de C++
. Al hacerlo, se crearán archivos binarios ejecutables en el directorio bin
.
Para compilar y ejecutar todas las pruebas, ejecute make test
. Esto compilará todas las pruebas (de la misma manera que se describe arriba) y las ejecutará, mostrando los resultados.
Para ejecutar una prueba específica y ver sus resultados, ejecútela manualmente desde el directorio bin
después de llamar make
. Por ejemplo, este comando (ejecutado desde bin
) ejecutaría solo las pruebas unitarias para el algoritmo N Queens:
Para eliminar todos los archivos creados durante la compilación, ejecute make clean
. No es necesario que haga esto cada vez que realice algunos cambios en un archivo y desee volver a compilarlo. Simplemente ejecute make
y volverá a compilar solo aquellos archivos cuyo contenido haya cambiado.
Para ver qué sucede en segundo plano durante la compilación y las pruebas, consulte los siguientes archivos:
- Archivo Make
- CMakeLists.txt
- Guión de prueba
Para obtener más información sobre make
, consulte el manual de GNU make. Para obtener más información sobre CMake
, consulte el tutorial de CMake.
mantenedores
Este proyecto es mantenido activamente por @alxmjo y de forma inactiva por @faheel.
Licencia
Este proyecto está licenciado según los términos de la licencia MIT.