Este repositorio contiene los trabajos prácticos y proyectos desarrollados para la materia Algoritmos y Programación 2 cátedea Buchwald en la Facultad de Ingeniería de la Universidad de Buenos Aires (FIUBA). Los trabajos fueron implementados en los lenguajes C y Python.
Ian Klaus von der Heyde - 107638
-
Métodos de Ordenamiento (Python):
- Implementación de algoritmos de ordenamiento comparativos (QuickSort, MergeSort, Inserción, Selección) y no comparativos (Radix Sort, Counting Sort, Bucket Sort).
-
División y Conquista (Python):
- Análisis e implementación de algoritmos basados en este paradigma, como MergeSort y QuickSort.
-
Árboles (C):
- Árboles binarios de búsqueda (BST).
- Árboles balanceados (AVL).
- Implementación y operaciones básicas como inserción, búsqueda y eliminación.
-
Hashes (C):
- Implementación de tablas de hash, funciones de hash, y manejo de colisiones (Hopscotch Hashing, Cuckoo Hashing, Hash & Displace)
-
Heaps (C):
- Creación de estructuras de montículos (heaps), incluyendo Heap Máximo y Heap Mínimo.
- Aplicaciones de heaps en la creación de colas de prioridad.
-
Grafos (Python):
- Implementación de estructuras de grafos (matriz de adyacencia y lista de adyacencia).
- Algoritmos de búsqueda en grafos (BFS, DFS).
- Algoritmos de caminos mínimos (Dijkstra, Floyd-Warshall).
-
Manejo de Memoria (C):
- Asignación y liberación de memoria dinámica en C.
- Optimización de la utilización de memoria en proyectos.
-
Elaboración de TDAs en C: Diseño e implementación de Tipos de Datos Abstractos (TDAs) en C, con separación de interfaz (headers) e implementación.
- ABB (Binary Search Tree)
- Cola (Queue):
- Hash:
- Heap:
- Lista Enlazada (Linked List):
- Pila (Stack)
-
Para ejecutar los códigos en C:
- Compilador
gcc
o equivalente.
- Compilador
-
Para ejecutar los códigos en Python:
- Python 3.x instalado.
- Compilar el código:
gcc archivo.c -o nombre_programa
- Ejecutar el script:
python archivo.py