I'm currently diving into data structures and algorithms (DSA), but I'm really struggling to grasp Big-O notation and its application in real-world problems. Since my math background isn't very strong, terms like O(1), O(n), and O(n^2) come off as quite confusing. While I get the basics of loops and arrays, I find myself lost when people mention things like "this is O(n)" or suggest optimizing to "O(log n)". I don't just want to memorize these concepts; I aim to understand how to analyze time complexity, dissect problems, and tackle them correctly. I've tried reading up on explanations, yet everything feels too abstract or presupposes knowledge I don't have. Can anyone recommend beginner-friendly visual resources or exercises that really helped them grasp these concepts? Thanks in advance! 🙏
1 Answer
A great resource is Abdul Bari on YouTube. He goes through Big-O notation step by step and explains how to calculate time complexity by showing graphs that illustrate the differences as input size grows. This way, O(n) looks different from O(n^2) or O(1) visually. Also, brushing up on discrete math can be very helpful for understanding algorithm analysis! Don't feel bad, many of us aren't math experts either!
I've checked out that channel, and it helped with the basics, but when I try to solve actual problems I still get mixed up since everyone else seems to know what they’re doing. I wish there was a more foundational approach!