/ DSA with C++ / Phase 4 Phase Goal Know how sorting really works and wield sorting as a preprocessing weapon.
Day 18: Quadratic sorts & the idea of an invariant
Practice, delayed recall, and independent transfer Choose one core problem from LeetCode, Codeforces, AtCoder, or CSES after checking its prerequisites; hide its technique label Spend 10–20 minutes retrieving one earlier mechanism and one earlier bug before new work; prioritize weak prerequisites Use a five-task bank: guided warm-up, core, changed constraint, delayed recall, optional stretch; attempt one or two, not all five on a timer Before a solution, produce a trace or brute-force plan; when stuck take one hint, act on it, then reassess Record help used, the failing input, the corrected reasoning, and a next review date; start around 1/3/7/14/30 days and adapt Reserve a weekly mixed review; after foundation readiness add a short virtual contest and upsolve one task with known prerequisites Prove progress through a delayed blank-editor reconstruction and a changed problem; a same-day quiz is supporting evidence only
Day 19: Merge sort & divide and conquer
The divide-and-conquer idea
Practice, delayed recall, and independent transfer Choose one core problem from LeetCode, Codeforces, AtCoder, or CSES after checking its prerequisites; hide its technique label Spend 10–20 minutes retrieving one earlier mechanism and one earlier bug before new work; prioritize weak prerequisites Use a five-task bank: guided warm-up, core, changed constraint, delayed recall, optional stretch; attempt one or two, not all five on a timer Before a solution, produce a trace or brute-force plan; when stuck take one hint, act on it, then reassess Record help used, the failing input, the corrected reasoning, and a next review date; start around 1/3/7/14/30 days and adapt Reserve a weekly mixed review; after foundation readiness add a short virtual contest and upsolve one task with known prerequisites Prove progress through a delayed blank-editor reconstruction and a changed problem; a same-day quiz is supporting evidence only
Day 20: Quick sort & quickselect
Quickselect — kth element without a full sort
Practice, delayed recall, and independent transfer Choose one core problem from LeetCode, Codeforces, AtCoder, or CSES after checking its prerequisites; hide its technique label Spend 10–20 minutes retrieving one earlier mechanism and one earlier bug before new work; prioritize weak prerequisites Use a five-task bank: guided warm-up, core, changed constraint, delayed recall, optional stretch; attempt one or two, not all five on a timer Before a solution, produce a trace or brute-force plan; when stuck take one hint, act on it, then reassess Record help used, the failing input, the corrected reasoning, and a next review date; start around 1/3/7/14/30 days and adapt Reserve a weekly mixed review; after foundation readiness add a short virtual contest and upsolve one task with known prerequisites Prove progress through a delayed blank-editor reconstruction and a changed problem; a same-day quiz is supporting evidence only
Day 21: Non-comparison sorts & sorting in practice
std::sort and custom comparators (mastery)
Sorting as a preprocessing weapon
Practice, delayed recall, and independent transfer Choose one core problem from LeetCode, Codeforces, AtCoder, or CSES after checking its prerequisites; hide its technique label Spend 10–20 minutes retrieving one earlier mechanism and one earlier bug before new work; prioritize weak prerequisites Use a five-task bank: guided warm-up, core, changed constraint, delayed recall, optional stretch; attempt one or two, not all five on a timer Before a solution, produce a trace or brute-force plan; when stuck take one hint, act on it, then reassess Record help used, the failing input, the corrected reasoning, and a next review date; start around 1/3/7/14/30 days and adapt Reserve a weekly mixed review; after foundation readiness add a short virtual contest and upsolve one task with known prerequisites Prove progress through a delayed blank-editor reconstruction and a changed problem; a same-day quiz is supporting evidence only
After this phase, you'll be able to:
Quadratic sorts & the idea of an invariant Merge sort & divide and conquer Quick sort & quickselect Non-comparison sorts & sorting in practice After Phase 4, explain a core invariant, reconstruct a solution after a delay, diagnose a bug, and solve one unlabelled variation. Repair a failed prerequisite before advancing; record help separately from independent work.