Explore the Algorithms Notes on easenotes for valuable insights tailored for professionals and beginners alike.
Explore the Algorithms Notes on easenotes for valuable insights tailored for professionals and beginners alike.
Whether you are an experienced professional looking to sharpen your algorithmic skills or a beginner eager to delve into the world of algorithms, the Algorithms Notes on easenotes provide a wealth of valuable insights. From fundamental concepts to advanced techniques, this resource offers a comprehensive guide to help you navigate the intricate landscape of algorithms with ease.
Discover tips, tricks, and real-world examples that will not only expand your knowledge but also enhance your problem-solving abilities. Clear explanations and practical applications make this resource accessible to individuals at all levels of expertise. Embrace the opportunity to deepen your understanding of algorithms and unlock new possibilities in your journey towards mastering this vital aspect of computer science. Explore the Algorithms Notes on easenotes today and elevate your algorithmic proficiency to new heights.
Chapter 1: Getting started with algorithms
Section 1.1: A sample algorithmic problem
Section 1.2: Getting Started with Simple Fizz Buzz Algorithm in Swift
Chapter 2: Algorithm Complexity
Section 2.1: Big-Theta notation
Section 2.2: Comparison of the asymptotic notations
Section 2.3: Big-Omega Notation
Chapter 3: Big-O Notation
Section 3.1: A Simple Loop
Section 3.2: A Nested Loop
Section 3.3: O(log n) types of Algorithms
Section 3.4: An O(log n) example
Chapter 4: Trees
Section 4.1: Typical anary tree representation
Section 4.2: Introduction
Section 4.3: To check if two Binary trees are the same or not
Chapter 5: Binary Search Trees
Section 5.1: Binary Search Tree - Insertion (Python)
Section 5.2: Binary Search Tree - Deletion(C++)
Section 5.3: Lowest common ancestor in a BST
Section 5.4: Binary Search Tree - Python
Chapter 6: Check if a tree is BST or not
Section 6.1: Algorithm to check if a given binary tree is BST
Section 6.2: If a given input tree follows Binary search tree property or not
Chapter 7: Binary Tree traversals
Section 7.1: Level Order traversal - Implementation
Section 7.2: Pre-order, Inorder, and Post Order traversal of a Binary Tree
Chapter 8: Lowest common ancestor of a Binary Tree
Section 8.1: Finding the lowest common ancestor
Chapter 9: Graph
Section 9.1: Storing Graphs (Adjacency Matrix)
Section 9.2: Introduction To Graph Theory
Section 9.3: Storing Graphs (Adjacency List)
Section 9.4: Topological Sort
Section 9.5: Detecting a cycle in a directed graph using Depth First Traversal
Section 9.6: Thorup's algorithm
Chapter 10: Graph Traversals
Section 10.1: Depth First Search traversal function
Chapter 11: Dijkstra’s Algorithm
Section 11.1: Dijkstra's Shortest Path Algorithm
Chapter 12: A* Pathfinding
Section 12.1: Introduction to A*
Section 12.2: A* Pathfinding through a maze with no obstacles
Section 12.3: Solving 8-puzzle problem using A* algorithm
Chapter 13: A* Pathfinding Algorithm
Section 13.1: Simple Example of A* Pathfinding: A maze with no obstacles
Chapter 14: Dynamic Programming
Section 14.1: Edit Distance
Section 14.2: Weighted Job Scheduling Algorithm
Section 14.3: Longest Common Subsequence
Section 14.4: Fibonacci Number
Section 14.5: Longest Common Substring
Chapter 15: Applications of Dynamic Programming
Section 15.1: Fibonacci Numbers
Chapter 16: Kruskal's Algorithm
Section 16.1: Optimal, disjoint-set based implementation
Section 16.2: Simple, more detailed implementation
Section 16.3: Simple, disjoint-set based implementation
Section 16.4: Simple, high level implementation
Chapter 17: Greedy Algorithms
Section 17.1: Huffman Coding
Section 17.2: Activity Selection Problem
Section 17.3: Change-making problem
Chapter 18: Applications of Greedy technique
Section 18.1: Offline Caching
Section 18.2: Ticket automat
Section 18.3: Interval Scheduling
Section 18.4: Minimizing Lateness
Chapter 19: Prim's Algorithm
Section 19.1: Introduction To Prim's Algorithm
Chapter 20: Bellman–Ford Algorithm
Section 20.1: Single Source Shortest Path Algorithm (Given there is a negative cycle in a graph)
Section 20.2: Detecting Negative Cycle in a Graph
Section 20.3: Why do we need to relax all the edges at most (V-1) times
Chapter 21: Line Algorithm
Section 21.1: Bresenham Line Drawing Algorithm
Chapter 22: Floyd-Warshall Algorithm
Section 22.1: All Pair Shortest Path Algorithm
Chapter 23: Catalan Number Algorithm
Section 23.1: Catalan Number Algorithm Basic Information
Chapter 24: Multithreaded Algorithms
Section 24.1: Square matrix multiplication multithread
Section 24.2: Multiplication matrix vector multithread
Section 24.3: merge-sort multithread
Chapter 25: Knuth Morris Pratt (KMP) Algorithm
Section 25.1: KMP-Example
Chapter 26: Edit Distance Dynamic Algorithm
Section 26.1: Minimum Edits required to convert string 1 to string 2
Chapter 27: Online algorithms
Section 27.1: Paging (Online Caching)
Chapter 28: Sorting
Section 28.1: Stability in Sorting
Chapter 29: Bubble Sort
Section 29.1: Bubble Sort
Section 29.2: Implementation in C & C++
Section 29.3: Implementation in C#
Section 29.4: Python Implementation
Section 29.5: Implementation in Java
Section 29.6: Implementation in Javascript
Chapter 30: Merge Sort
Section 30.1: Merge Sort Basics
Section 30.2: Merge Sort Implementation in Go
Section 30.3: Merge Sort Implementation in C & C#
Section 30.4: Merge Sort Implementation in Java
Section 30.5: Merge Sort Implementation in Python
Section 30.6: Bottoms-up Java Implementation
Chapter 31: Insertion Sort
Section 31.1: Haskell Implementation
Chapter 32: Bucket Sort
Section 32.1: C# Implementation
Chapter 33: Quicksort
Section 33.1: Quicksort Basics
Section 33.2: Quicksort in Python
Section 33.3: Lomuto partition java implementation
Chapter 34: Counting Sort
Section 34.1: Counting Sort Basic Information
Section 34.2: Pseudo code Implementation
Chapter 35: Heap Sort
Section 35.1: C# Implementation
Section 35.2: Heap Sort Basic Information
Chapter 36: Cycle Sort
Section 36.1: Pseudo code Implementation
Chapter 37: Odd-Even Sort
Section 37.1: Odd-Even Sort Basic Information
Chapter 38: Selection Sort
Section 38.1: Elixir Implementation
Section 38.2: Selection Sort Basic Information
Section 38.3: Implementation of Selection sort in C#
Chapter 39: Searching
Section 39.1: Binary Search
Section 39.2: Rabin Karp
Section 39.3: Analysis of Linear search (Worst, Average and Best Cases)
Section 39.4: Binary Search: On Sorted Numbers
Section 39.5: Linear search
Chapter 40: Substring Search
Section 40.1: Introduction To Knuth-Morris-Pratt (KMP) Algorithm
Section 40.2: Introduction to Rabin-Karp Algorithm
Section 40.3: Python Implementation of KMP algorithm
Section 40.4: KMP Algorithm in C
Chapter 41: Breadth-First Search
Section 41.1: Finding the Shortest Path from Source to other Nodes
Section 41.2: Finding Shortest Path from Source in a 2D graph
Section 41.3: Connected Components Of Undirected Graph Using BFS
Chapter 42: Depth First Search
Section 42.1: Introduction To Depth-First Search
Chapter 43: Hash Functions
Section 43.1: Hash codes for common types in C#
Section 43.2: Introduction to hash functions
Chapter 44: Travelling Salesman
Section 44.1: Brute Force Algorithm
Section 44.2: Dynamic Programming Algorithm
Chapter 45: Knapsack Problem
Section 45.1: Knapsack Problem Basics
Section 45.2: Solution Implemented in C#
Chapter 46: Equation Solving
Section 46.1: Linear Equation
Section 46.2: Non-Linear Equation
Chapter 47: Longest Common Subsequence
Section 47.1: Longest Common Subsequence Explanation
Chapter 48: Longest Increasing Subsequence
Section 48.1: Longest Increasing Subsequence Basic Information
Chapter 49: Check two strings are anagrams
Section 49.1: Sample input and output
Section 49.2: Generic Code for Anagrams
Chapter 50: Pascal's Triangle
Section 50.1: Pascal triangle in C
Chapter 51: Algo:- Print an m*n matrix in square wise
Section 51.1: Sample Example
Section 51.2: Write the generic code
Chapter 52: Matrix Exponentiation
Section 52.1: Matrix Exponentiation to Solve Example Problems
Chapter 53: Polynomial-time bounded algorithm for Minimum Vertex Cover
Section 53.1: Algorithm Pseudo Code
Chapter 54: Dynamic Time Warping
Section 54.1: Introduction To Dynamic Time Warping
Chapter 55: Fast Fourier Transform
Section 55.1: Radix 2 FFT
Section 55.2: Radix 2 Inverse FFT