This repository contains my solutions and implementations of various data structures and algorithms, developed while taking a Udemy Course.
The purpose of this repository is to demonstrate my understanding of fundamental data structures and algorithms. It includes implementations of both classical and advanced algorithms, as well as efficient data structures. Besides, the course teaches relevant computation concepts, such as time/space complexity and OOP.
The solutions are written in Python and cover the topics below:
- Array
- List
- Dictionary
- Tuple
- Linked List
- Singly
- Doubly
- Circular Singly
- Circular Doubly
- Stack
- Queue
- Tree
- Binary Tree
- Binary Search Tree
- AVL Tree
- Binary Heap
- Trie
- Graph
- Hash Table
- Recursion
- Sorting Algorithms
- Bubble Sort
- Selection Sort
- Insertion Sort
- Bucket Sort
- Merge Sort
- Quick Sort
- Heap Sort
- Topological Sort
- Searching Algorithms
- Linear Search
- Binary Search
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
- Graph Algorithms
- Dijkstra's Algorithm
- Bellman Ford's Algorithm
- Floyd Warshall's Algorithm
- Kruskal's Algorithm
- Prim's Algorithm
- Greedy Algorithms
- Divide and Conquer Algorithms
- Dynamic Programming
- Backtracking Algorithms
To run the code locally:
- Clone this repository:
git clone https://github.com/bernardoarodrigues/DSA.git
- Navigate to the directory:
cd DSA
Inside the algoritms or the data structures folder, you will find the implemented code with comments about each content, such as time and space complexity.
To run a specific file:
python DataStructures/Folder/Filename.py
python Algorithms/Folder/Filename.py
This repository is licensed under the MIT License.