https://github.com/ibrahimhiarea/acm
The Algorithms & Data Structures Repository is a comprehensive collection of fundamental algorithms, data structures, and computational techniques. This repository provides a valuable resource for studying and implementing essential concepts in software development.
https://github.com/ibrahimhiarea/acm
algorithms data-structures icpc problem-solving
Last synced: 2 months ago
JSON representation
The Algorithms & Data Structures Repository is a comprehensive collection of fundamental algorithms, data structures, and computational techniques. This repository provides a valuable resource for studying and implementing essential concepts in software development.
- Host: GitHub
- URL: https://github.com/ibrahimhiarea/acm
- Owner: IbrahimHiarea
- Created: 2021-12-22T14:02:27.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-08-31T17:14:23.000Z (over 2 years ago)
- Last Synced: 2025-06-26T20:43:30.463Z (9 months ago)
- Topics: algorithms, data-structures, icpc, problem-solving
- Homepage:
- Size: 203 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Algorithms and Data Structures Repository
This repository serves as a comprehensive collection of algorithms, data structures, and various other computational techniques commonly used in software development. It provides a valuable resource for studying, implementing, and understanding fundamental concepts in computer science.
## Algorithms
The repository includes implementations of various algorithms, covering a wide range of topics, including:
- Graph Algorithms: Breadth-First Search (BFS), Depth-First Search (DFS), Dijkstra's Algorithm, Bellman-Ford Algorithm, Kruskal's Algorithm, Prim's Algorithm, and more.
- Tree Algorithms: Binary Search Tree (BST), AVL Tree, Red-Black Tree, Heap, Trie, and related algorithms like Tree Traversals, Lowest Common Ancestor (LCA), and Binary Indexed Tree (BIT).
- Dynamic Programming: Classic dynamic programming algorithms, such as the Knapsack Problem, Longest Common Subsequence (LCS), Matrix Chain Multiplication, and more.
- Mathematical Algorithms: Prime Number Generation, Sieve of Eratosthenes, Euclidean Algorithm, Modular Arithmetic, Number Theory Algorithms, and more.
## Data Structures
A variety of data structures are implemented in this repository, which can be used to efficiently manage and organize data, including:
- Array: Dynamic Array, Sparse Array.
- Linked List: Singly Linked List, Doubly Linked List.
- Stack: Array-based Stack, Linked List-based Stack.
- Queue: Array-based Queue, Linked List-based Queue, Priority Queue.
- Hash Table: Separate Chaining, Open Addressing.
- Heap: Min Heap, Max Heap.
- Tree: Binary Search Tree (BST), AVL Tree, Red-Black Tree, B-Tree.
- Graph: Directed Graph, Undirected Graph, Weighted Graph, Graph Traversal algorithms.
## Additional Resources
Apart from algorithms and data structures, this repository also provides additional resources, such as:
- Common Sorting Algorithms: Quick Sort, Merge Sort, Insertion Sort, Selection Sort, Bubble Sort, and more.
- Searching Algorithms: Linear Search, Binary Search, Interpolation Search, and related techniques.
- String Algorithms: String Matching, String Manipulation, Regular Expressions, and more.
- Bit Manipulation: Bitwise Operations, Bit Hacks, and related algorithms.
- Computational Geometry: Convex Hull, Line Intersection, Polygon Triangulation, and more.
## Contributions
Contributions are welcome! If you have any improvements, new algorithms, or data structures to add, please feel free to submit a pull request. Please ensure that your code follows the established coding conventions and includes proper documentation.
## Acknowledgements
We would like to express our gratitude to the open-source community for their invaluable contributions and the wealth of knowledge they have shared.