• contact@easenotes.com
  • Phone: (+91) 9964716807
Algorithms Notes for Beginners and Professionals
Views

Algorithms Notes for Beginners and Professionals

Loading...

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