Software engineer Must knows (visual)

Software engineer Must knows (visual)

·

2 min read

Top Algorithms:

Every computer science student is expected to know the following algorithms:

330px-Noisy_binary_search.svg.png

Preorder-from-Inorder-and-Postorder-traversals.jpg

  • Insertion Sort, Selection Sort, Merge Sort, Quicksort, Counting Sort, Heap Sort

  • Kruskal’s Algorithm

  • Floyd Warshall Algorithm

  • Dijkstra’s Algorithm

  • Bellman Ford Algorithm

  • Kadane’s Algorithm

  • Lee Algorithm

  • Flood Fill Algorithm

  • Floyd’s Cycle Detection Algorithm

  • Topological Sorting in a DAG

  • Union Find Algorithm

Top Data Structures:

Along with the above algorithms, every computer science student is expected to

implement the following data structures:

  • Linked List — C, C++, Java, Python

download.jfif

  • Linked List — Insertion at Tail

Linkedlist_insert_last.png

  • BST — Insertion, Searching, Deletion

bst8.png

  • Stack implementation using an array — C, C++, C++ (Using Templates), Java, Python

Stack-Data-structure-push-and-pop.png

  • Stack Implementation using a Linked List
  • Queue implementation using an array — C, C++, C++ (Using Templates), Java, Python

  • Queue Implementation using a Linked List

  • Min Heap and Max Heap — C++, Java

  • Graph — C, C++, C++ STL, Java Collections, Python

  • Trie — C, C++, C++ (Memory Efficient), Java, Python

Top Concepts: Finally, one is also expected to be familiar with other programming paradigms like Backtracking, Dynamic Programming, Divide & Conquer and Greedy Algorithms, and concepts like Hashing and Recursion.