Skip to main content

index

BASICS MUST DO#

  • Merge sort, Quick sort - linked list and array
  • Binary search (array)
  • sliding window
  • slow and fast pointer (linked list)
  • Binary tree (inorder, preordder, post order, level order)
  • Max and min heap creation from array
  • Graph (BFS, DFS)
  • Trie (create)
  • Dynamic programming (0/1 knapsacck)
  • backtracking (knights tour)

List Of DS#

  • Array

    • Binary search
    • 2 pointers
    • sliding window
    • Moores voting algorithm
    • Modified merge sort
    • Quick sort initial parttition
    • valley peak approach
  • LinkedList

    • slow and fast pointers
    • detect cycle and where it begins
    • insertion, deletion and reversal
  • Binary tree and BST

    • Inorder, preorder and post order (DFS)
    • level order (BFS)
    • left/right view and bottom/top view
    • Find height and max width
    • Is a complete Binary tree or not?
    • Longest path in a tree
  • Stack and Queue

    • array and linkedlist implementation
    • FIFO and LIFO
    • stack : DFS graph, balanced or valid paranthesis, next greater element, infix to postfix conversion
    • queue : level order for BT, BFS graph, task scheduler
  • Heap (Binary Heap)

    • Top K elements
    • Max and min heap
    • Priority Queue
  • Graph (Dijkstra, Bellman ford, Floyd warshall, prim, kruskal, topological sort)

    • matrix and adjacency list representation
    • weighted and unweighted
    • DFS and BFS
    • directed acyclic graph and shortest path
    • keeping a visisted array
    • topological sort
  • Matrix

  • Advanced Data Structure

    • Segment Tree
    • Trie
    • AVL Tree
    • Splay Tree
    • Red-Black Tree
    • K Dimensional Tree
    • Self-Balancing BSTs
    • Binary indexed tree / Fenwick tree

link : https://www.geeksforgeeks.org/data-structures/#Misc


List of Algorithms#

  • Analysis of algorithms

  • Searching and Sorting

    • Binary search
    • linear search
    • quick sort (TC : worst case - n2, avg case : nlogn; SC is O(1) )
    • merge sort (TC : all case - nlogn; SC for array: O(n) and for linked list : O(logn))
    • insertion, selection and bubble sort
  • Dynamic Programming

    • Memoization and Bottom up approach
    • Overlapping subproblems
    • keeping a cache for already computed result
    • Using recursion and then optimizing
    • 0/1 knapsack problem
  • Backtracking

    • The Knight’s tour problem
    • Recursion and actually it is a brute force
    • Keep a visited array
    • Permutations of given String
  • Greedy Algorithms

    • Kruskal’s Minimum Spanning Tree (MST)
    • Prim’s Minimum Spanning Tree
    • Dijkstra’s Shortest Path
    • Huffman Coding
  • Divide and Conquer

  • Bit Algorithms

    • Taking xor
    • Binary indexed tree

link : https://www.geeksforgeeks.org/fundamentals-of-algorithms/

==============================================================================

SYLLABUS

List Of DS#

  • Array -
  • LinkedList
  • Binary tree
  • Binary Search tree
  • Stack
  • Queue
  • Heap (Binary Heap)
  • Graph (Dijkstra, Bellman ford, Floyd warshall, prim, kruskal, topological sort)
  • Matrix
  • Advanced Data Structure(Segment Tree, Trie, AVL Tree, Splay Tree, Red-Black Tree, K Dimensional Tree, Self-Balancing BSTs)

link : https://www.geeksforgeeks.org/data-structures/#Misc


List of Algorithms#

  • Analysis of algorithms
  • Searching and Sorting
  • Dynamic Programming
  • Backtracking (The Knight’s tour problem, Rat in a Maze, Sudoku, Hamiltonian cycle, Print all permutations of a given string)
  • Greedy Algorithms ( Kruskal’s Minimum Spanning Tree (MST), Prim’s Minimum Spanning Tree, Dijkstra’s Shortest Path, Huffman Coding )
  • Divide and Conquer
  • Bit Algorithms
  • Graph Algorithms

link : https://www.geeksforgeeks.org/fundamentals-of-algorithms/