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

https://github.com/josegpt/fundamentals

Fundamental Data Structures and Algorithms.
https://github.com/josegpt/fundamentals

algorithms c data-structures dynamic-programming makefile sort trees

Last synced: 9 months ago
JSON representation

Fundamental Data Structures and Algorithms.

Awesome Lists containing this project

README

          

# Data Structures and Algorithms

These are the Fundamental Data Structures and Algorithms for a Software Engineer.

![cs meme](assets/meme.png)

# Implementations

## Sorting

- [x] [Bubble Sort **O(n^2)**](lib/sorting/bubble_sort.c)
- [x] [Selection Sort **O(n^2)**](lib/sorting/selection_sort.c)
- [x] [Insertion Sort **O(n^2)**](lib/sorting/insertion_sort.c)
- [ ] Quick Sort **O(nlogn)**
- [ ] Merge Sort **O(nlogn)**
- [x] [Heap Sort **O(nlogn)**](lib/heaps/max_heap.c)
- [ ] Counting Sort **O(n + k)** _where k is a finite number_
- [ ] Radix Sort **O(n \* d)** _where d is the number of digits in the maximum number_
- [ ] Bucket Sort **O(n)**

## Data Structures

- [x] [Stack](lib/stack/stack.c)
- [x] [Queue](lib/queue/queue.c)
- [x] [Priority Queue](lib/pqueue/pqueue.c)

## Trees

- [ ] AVL Trees
- [x] [Trie](lib/trie/trie.c)
- [ ] Binary Search Trees

## Graphs

- [ ] Breadth-First Search
- [ ] Depth-First Search
- [ ] Topological Sort
- [ ] mDFS
- [ ] Kahn's Algorithm
- [ ] Recurisve Backtracking

## Greedy Algorithms

- [ ] Making Change
- [ ] Minimum Spanning Trees
- [ ] Prim's Algorithm
- [ ] Kruskal's Algorithm
- [ ] Huffman Coding
- [ ] Dijkstra's
- [ ] A\*

## Dynamic Programming

- [ ] Fibonacci
- [ ] Making Change
- [ ] Knapsack

# License

[MIT](LICENSE)