Data Structers Lecture Codes in Ruby
An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate input in a finite amount of time.
#Brute-Force
- - Selection Sort
- - String Matching
- - Calculate Polinom
- - Closest Points
- - Exhaustive Search
#Divide and Conquer
- - Merge Sort O(nlogn)
- - Quick Sort O(nlogn)
- - Binary Search
####Binary Tree
- - InOrder Tree Walk
- - Tree Search O(h)
- - Tree Minimum O(h)
- - Tree Maximum O(h)
- - Successor O(h)
- - Predecessor O(h)
- - Node Insertion O(h)
- - Node Deletion O(h)
Binary Tree Traversal O(n)
- - PreOrder
- - InOrder
- - PostOrder
#Decrease and Conquer
####Decrease by a constant
- Instertion Sort
- Depth-first search (DFS)
- Breadth-first search (BFS)
- Topological Sorting
####Decrease By Constant Factor
- Binary Search
- Exponentiation by Squaring
- Multiplication à la russe
####Variable-Size Decrease
- Euclid Algorithm
- Selection By Partition
#Transform and Conquer
####Instance simplification
- - Gaussian Elimination
- - Horner's Rule
####Problem Reduction
- - ICM
- [ ] Heapify
- [ ] Build Heap
- [ ] Heap Sort