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 -
breadth-first search (BFS)
depth-first search(DFS)
shortest path from source to all vertices: Dijkstra
the shorter path from every vertex to every other vertex
minimum spanning tree: prim
maximum spanning tree: Kruskal
strongly connected components: kosaraju algorithm
topological sort
the shortest path from source to all vertices with negative part: Bellmen Ford
normal DSU
DSU by rank
Dynamic Programming -
memoisation
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