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

https://github.com/yazaldefilimone/algorithms-backup

🤓 | Computer science | Algorithms | Data structures
https://github.com/yazaldefilimone/algorithms-backup

algorithms computer-science data-structures

Last synced: about 2 months ago
JSON representation

🤓 | Computer science | Algorithms | Data structures

Awesome Lists containing this project

README

        

**NB:** All data structures implement from scratch without using an existing structure, and I intend to reuse them in the algorithms

- You can see my past [Problem Solver](/2023_09_algorithms)

### Technical

- [x] Big O notation
- [x] Constant - (1)
- [x] Linear - (n)
- [x] Logarithmic - (log n)
- [x] Quadratic (n^2)
- [x] Exponential (2^n)

### Data Structures

- [x] [Array](/computer_science/data-structure/arrays/array.js)
- [x] [Graphs](/computer_science/data-structure/graphs/graph.js)
- [x] [Linked List](/computer_science/data-structure/linked-list/linked-list.js)
- [x] [Doubly Linked List](/computer_science/data-structure/linked-list/doubly-linked-list.js)
- [x] [Queue](/computer_science/data-structure/queue/queue.js)
- [x] [Stack](/computer_science/data-structure/stack/stack.js)
- [x] [Hash Table](/computer_science/data-structure/hash-table/hash-table.js)
- [x] [Tree](/computer_science/data-structure/tree/tree.js)
- [x] [Binary Search Tree](/computer_science/data-structure/tree/binary-search-tree.js)
- [x] [Graph](/computer_science/data-structure/graphs/graph.js)
- [x] [Min Heap](/computer_science/data-structure/heap/min-heap.js)
- [ ] Max Heap
- [ ] Priority Queue
- [ ] AVL Tree
- [ ] Red-Black Tree
- [ ] Segment Tree
- [ ] Fenwick Tree
- [ ] Disjoint Set
- [ ] Bloom Filter
- [ ] LRU Cache - Least Recently Used (LRU) cache

### Algorithms

- Sorting:

- [x] [Bubble Sort](/computer_science/algorithms/bubble-sort/bubble-sort.js)
- [x] [Selection Sort](/computer_science/algorithms/selection-sort/selection-sort.js)
- [x] [Insertion Sort](/computer_science/algorithms/insertion-sort/insertion-sort.js)
- [x] [Merge Sort](/computer_science/algorithms/merge-sort/merge-sort.js)
- [x] [Quick Sort](/computer_science/algorithms/quick-sort/quick-sort.js)
- [ ] Radix Sort
- [ ] Bucket Sort
- [ ] Heap Sort
- [ ] Shell Sort
- [ ] Counting Sort

- Trees/Graphs:

- [x] [Depth-First Search (DFS)](/computer_science/algorithms/graphs/depth-first-search/depth-first-search.js)
- [x] [Breadth-First Search (BFS)](/computer_science/algorithms/graphs/breadth-first-search/breadth-first-search.js)
- [ ] Kruskal’s Algorithm
- [ ] Dijkstra Algorithm
- [ ] Bellman-Ford Algorithm
- [ ] Floyd-Warshall Algorithm
- [ ] Detect Cycle
- [ ] Prim’s Algorithm
- [ ] Topological Sorting
- [ ] Articulation Points
- [ ] Bridges
- [ ] Eulerian Path and Eulerian Circuit
- [ ] Hamiltonian Cycle
- [ ] Strongly Connected Components
- [ ] Travelling Salesman Problem

### Math

- [ ] Bit Manipulation - set/get/update/clear bits, multiplication/division by two, make negative etc.
- [ ] Binary Floating Point - binary representation of the floating-point numbers.
- [ ] Factorial
- [ ] Fibonacci Number - classic and closed-form versions
- [ ] Prime Factors - finding prime factors and counting them using Hardy-Ramanujan's theorem
- [ ] Primality Test (trial division method)
- [ ] Euclidean Algorithm - calculate the Greatest Common Divisor (GCD)
- [ ] Least Common Multiple (LCM)
- [ ] Sieve of Eratosthenes - finding all prime numbers up to any given limit
- [ ] Is Power of Two - check if the number is power of two (naive and bitwise algorithms)
- [ ] Pascal's Triangle
- [ ] Complex Number - complex numbers and basic operations with them
- [ ] Radian & Degree - radians to degree and backwards conversion
- [ ] Fast Powering
- [ ] Horner's method - polynomial evaluation
- [ ] Matrices - matrices and basic matrix operations (multiplication, transposition, etc.)
- [ ] Euclidean Distance - distance between two points/vectors/matrices
- [ ] Integer Partition
- [ ] Square Root - Newton's method
- [ ] Liu Hui π Algorithm - approximate π calculations based on N-gons
- [ ] Discrete Fourier Transform - decompose a function of time (a signal) into the frequencies that make it up

### Cryptography

- [ ] Polynomial Hash - rolling hash function based on polynomial
- [ ] Rail Fence Cipher - a transposition cipher algorithm for encoding messages
- [ ] Caesar Cipher - simple substitution cipher
- [ ] Hill Cipher - substitution cipher based on linear algebra

### Machine Learning

- [ ] NanoNeuron
- [ ] k-NN
- [ ] k-Means

### Image Processing

- [ ] Seam Carving
- [ ] Weighted Random

### License

[MIT](https://github.com/yazaldefilimonepinto/algorithms/blob/main/LICENSE) © [Yazalde Filimone](https://www.linkedin.com/in/yazalde-filimone/)