An open API service indexing awesome lists of open source software.

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.

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.