mirror of
https://github.com/zrwusa/data-structure-typed.git
synced 2024-11-23 12:54:04 +00:00
MIrror of DST.
https://data-structure-typed-docs.vercel.app
.idea | ||
src | ||
tests/unit/data-structures | ||
.dependency-cruiser.js | ||
.gitignore | ||
jest.config.js | ||
package-lock.json | ||
package.json | ||
README.md | ||
rename_clear_files.sh | ||
tsconfig.json |
data-structure-typed
Javascript Data Structure, TypeScript Data Structure Library
install
yarn
yarn add data-structure-typed
npm
npm install data-structure-typed
Live Examples
Examples Repository
Data Structures
Meticulously crafted to empower developers with a versatile set of essential data structures. Our library includes a wide range of data structures: Binary Tree, Binary Search Tree (BST), AVL Tree, Tree Multiset, Segment Tree, Binary Indexed Tree, Graph, Directed Graph, Undirected Graph, Linked List, Singly Linked List, Doubly Linked List, Queue, Object Deque, Array Deque, Stack, Hash, Coordinate Set, Coordinate Map, Heap, Priority Queue, Max Priority Queue, Min Priority Queue, Trie
API docs
data-- AVLTree
- AVLTree
Node - Abstract
Edge - Abstract
Graph - Abstract
Vertex - Array
Deque - BST
- BSTNode
- Binary
Indexed Tree - Binary
Tree - Binary
Tree Node - Character
- Coordinate
Map - Coordinate
Set - Deque
- Directed
Edge - Directed
Graph - Directed
Vertex - Doubly
Linked List - Doubly
Linked List Node - Heap
- Matrix2D
- MatrixNTI2D
- Max
Heap - Max
Priority Queue - Min
Heap - Min
Priority Queue - Navigator
- Object
Deque - Priority
Queue - Queue
- Segment
Tree - Segment
Tree Node - Singly
Linked List - Singly
Linked List Node - Stack
- Tree
Multi Set - Trie
- Trie
Node - Undirected
Edge - Undirected
Graph - Undirected
Vertex - Vector2D
Complexities
performance of Big O
Big O Notation | Type | Computations for 10 elements | Computations for 100 elements | Computations for 1000 elements |
---|---|---|---|---|
O(1) | Constant | 1 | 1 | 1 |
O(log N) | Logarithmic | 3 | 6 | 9 |
O(N) | Linear | 10 | 100 | 1000 |
O(N log N) | n log(n) | 30 | 600 | 9000 |
O(N^2) | Quadratic | 100 | 10000 | 1000000 |
O(2^N) | Exponential | 1024 | 1.26e+29 | 1.07e+301 |
O(N!) | Factorial | 3628800 | 9.3e+157 | 4.02e+2567 |
Data Structure Complexity
Data Structure | Access | Search | Insertion | Deletion | Comments |
---|---|---|---|---|---|
Array | 1 | n | n | n | |
Stack | n | n | 1 | 1 | |
Queue | n | n | 1 | 1 | |
Linked List | n | n | 1 | n | |
Hash Table | - | n | n | n | In case of perfect hash function costs would be O(1) |
Binary Search Tree | n | n | n | n | In case of balanced tree costs would be O(log(n)) |
B-Tree | log(n) | log(n) | log(n) | log(n) | |
Red-Black Tree | log(n) | log(n) | log(n) | log(n) | |
AVL Tree | log(n) | log(n) | log(n) | log(n) | |
Bloom Filter | - | 1 | 1 | - | False positives are possible while searching |
Sorting Complexity
Name | Best | Average | Worst | Memory | Stable | Comments |
---|---|---|---|---|---|---|
Bubble sort | n | n2 | n2 | 1 | Yes | |
Insertion sort | n | n2 | n2 | 1 | Yes | |
Selection sort | n2 | n2 | n2 | 1 | No | |
Heap sort | n log(n) | n log(n) | n log(n) | 1 | No | |
Merge sort | n log(n) | n log(n) | n log(n) | n | Yes | |
Quick sort | n log(n) | n log(n) | n2 | log(n) | No | Quicksort is usually done in-place with O(log(n)) stack space |
Shell sort | n log(n) | depends on gap sequence | n (log(n))2 | 1 | No | |
Counting sort | n + r | n + r | n + r | n + r | Yes | r - biggest number in array |
Radix sort | n * k | n * k | n * k | n + k | Yes | k - length of longest key |