How do I learn it? Watching lectures haven't been helping a lot. I want to solve "solved problems" but I'm not finding anything that has solved problems.

Please guide me. Complexity analysis of algorithms mean big oh, theta, omega... etc.

  • 2
    $\begingroup$ I'm confused -- are you finding unsolved problems instead? It's been my experience that essentially every problem that you will find in any instructional resource is a solved problem. $\endgroup$
    – Ben I.
    Commented Nov 16, 2023 at 13:31
  • $\begingroup$ What sort of resources are you looking for? There are books with exercise, of course. Or are you just looking for problems with already published solutions? $\endgroup$
    – Buffy
    Commented Nov 16, 2023 at 14:23
  • $\begingroup$ I'm looking for problems with already published step by step solutions. Btw which one is more helpful? $\endgroup$
    – achhainsan
    Commented Nov 16, 2023 at 15:00
  • $\begingroup$ I think unsolved exercises could also help. $\endgroup$
    – achhainsan
    Commented Nov 17, 2023 at 7:44

1 Answer 1


Most textbooks have some discussion of solved problems along with the theory. They also have exercises for the students and some provide solutions to (some of) the exercises. But they are designed for classroom use in which student work is given feedback by an instructor. It is that feedback that you are missing and it is both necessary and difficult to get for someone studying on their own. That is why self study can be far less useful and efficient than taking a course with a skilled instructor.

Note, importantly (importantly), that reading solutions isn't nearly the same thing as creating solutions. Learning (true learning) is an active sport, not a passive one. You can't learn this stuff any better than you can learn to swim by watching the olympics. But also note that those olympic swimmers worked with a coach to improve their form. They got feedback throughout their training.

Repetition and feedback are key to learning. If you can find a way to get that feedback you will progress much faster. One way that might be open to you if you can't take a course is to find someone else with similar interests. Then do the work and exchange papers, giving feedback to each other. It isn't perfect, but better than nothing.

And "unsolved" problems are unlikely to help you. A lot of people have probably been trying to solve them for a long time and they have already developed the necessary skills.

Failing everything else, find a good textbook and carefully read the text. Then attempt the exercises there, which are tailored to the textual development.

You can also write programs to implement the algorithms and instrument them to determine their behavior, though this, in itself, is a skill that needs to be learned. Count and report the important computations (tests, swaps, ...). Run on many data sets and evaluate the results to see if they match the theory. Much harder, actually, than just taking a course with a good instructor.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.