DSA -Day1

Why start DSA first?

DSA gives a better idea of how the tools of any particular language like Python; c++; java
in my point of view, languages are categorized as subsets

python< java< c++< c > > >

you can have a better view of the above after learning the basics of each language
it makes problem-solving easy

What to learn in DSA?

step1 - learn the basics of any one language(NOTE:- learning this in one language is enough to implement in any other language)

step2 - learn about big-O notations space-time complexity

step3 - learn about recursions and looping

step4 - learn about array linked lists, stacks, and queues(linear data structures)

step5 - searching, sorting, heap maps, heaps, trees, and sliding windows

step6 -
graphs -

  1. breadth-first search (BFS)

  2. depth-first search(DFS)

  3. shortest path from source to all vertices: Dijkstra

  4. the shorter path from every vertex to every other vertex

  5. minimum spanning tree: prim

  6. maximum spanning tree: Kruskal

  7. strongly connected components: kosaraju algorithm

  8. topological sort

  9. the shortest path from source to all vertices with negative part: Bellmen Ford

  10. normal DSU

  11. DSU by rank

Dynamic Programming -

  1. memoisation

  2. tabulation

step7 - number theory, bit manipulation, and tries

step8 - OOP

step9 - projects

Note - these are the basic you learn in DSA with which you can start doing problems while parallelly learning