Data Structures and Algorithm

Curated By

Avatar of Cerin-Sara Avatar of jose-jimmy

A computer program is a collection of instructions to perform a specific task. For this, a computer program may need to store data, retrieve data, and perform computations on the data.

A data structure is a named location that can be used to store and organize data. And, an algorithm is a collection of steps to solve a particular problem. Learning data structures and algorithms allow us to write efficient and optimized computer programs.

PREREQUISITES 🧳

Proficiency in any programming language is a must as it will ease most of your problems when it comes to implementation. Be it C++, Java, Python, or any language of your choice.

TOPICS TO LEARN 📖

  • Asymptotic Analysis

  • Arrays and Lists

  • 2D Arrays

  • Functions

  • Strings

  • Linked List

  • Stack

  • Queue

  • Hash Table and Hash Set

  • Heap

  • Divide and Conquer Algorithm

  • Graph

    • BFS
    • DFS
    • Prim’s Algorithm
    • Dijkstra’s Algorithm
  • Binary Tree

  • Binary Search Tree

  • Trie

  • Searching

  • Backtracking

    • Rat in a maze
    • N Queen Problem
    • Sudoku Problem
  • Greedy Algorithm

    • Fractional Knapsack
    • Huffman coding
  • Sorting Techniques

    • Heap sort
    • Merge sort
    • Quick sort
    • Bubble sort *Complexity of an Algorithm

 *Best case complexity-Omega notation  *Average case complexity-Theta notation  *Worst case complexity-Big O notation

Online Courses 💻

Tutorials 💡

Blogs 📝

Books 📚

  • Introduction to Algorithms by Thomas H Cormen
  • Algorithms by Robert Sedgewick & Kevin Wayne
  • The Algorithm Design Manual by Steve S. Skiena
  • Algorithm Design by Kleinberg & Tardos
  • Data Structures and Algorithms. Aho, Ullman & Hopcroft
  • Classic Data Structure by Debasis Samanta

GitHub Repos

Youtube Channels

✌️ That’s it. You’re done!!Update all your works in github. Happy Learning