Problem decomposition, complexity, sorting/searching families, graph algorithms and dynamic programming. Use this page to understand the concept before attempting focused practice.
Asymptotic notation: O, Ω and Θ as ways to describe growth.
Sorting and searching: compare common families and their assumptions.
Graph algorithms: BFS, DFS and shortest-path concepts.
Greedy methods versus dynamic programming: local choice versus overlapping subproblems.
Correctness and trade-offs: an algorithm is useful only when its result is correct for the problem definition.
Common exam traps
Calling every divide-and-conquer algorithm logarithmic.
Confusing time complexity with actual runtime on a given machine.
Using a greedy method where the problem needs dynamic programming.
Ignoring input constraints when choosing an algorithm.
How to study it on ExamCracker
Read the core concepts and examples.
Attempt the focused public practice on the related exam hub.
Review every incorrect answer instead of only checking the score.
Return to the topic before moving to a full-length mock.
Quick check
Quick check: If an algorithm repeatedly halves the remaining search space, which time-complexity family is the usual match?
A. O(1)
B. O(log n)
C. O(n)
D. O(n²)
Answer: O(log n) Why: Halving the search space on each step produces logarithmic growth in the number of steps, as in binary search.
Why this page exists
This is a focused learning page, not a keyword-only article. It connects an exam concept to practice, related resources and the broader ExamCracker preparation flow.