Every algorithm in the guide on one page: complexity at a glance and the one-line rule for when to reach for it.
← Back to the Field GuideQo'llanmadagi barcha algoritmlar bitta sahifada: bir qarashda complexity va qachon qo'llash haqidagi bir qatorli qoida.
← Qo'llanmaga qaytish| Algorithm | Time | Space | Reach for it when… |
|---|---|---|---|
| Bubble Sort | O(n²) | O(1) | Teaching sorting, tiny arrays, or nearly-sorted data with early-exit — never large data. |
| Binary Search | O(log n) | O(1) | Sorted data with O(1) random access; exact match or boundary questions. |
| Breadth-First Search | O(V + E) | O(V) | Shortest path in equal-cost graphs, level-order traversal, or grid spread problems. |
| Two Pointers | O(n) | O(1) | Sorted array, pair/triplet hitting a target sum — replaces an O(n²) nested loop. |
| Sliding Window | O(n) | O(1) | Aggregate (sum/max/count) over every fixed-length-k contiguous subarray or substring. |
| Fast & Slow Pointers | O(n) | O(1) | Cycle detection or middle-of-list in a linked list with O(1) space. |
| Prefix Sum + Hash Map | O(n) | O(n) | Counting/finding contiguous subarrays summing to a target, especially with negatives. |
| Depth-First Search | O(V + E) | O(V) | Exhaustive path search (backtracking), connected components, cycle detection, topological ordering. |
| 1D Dynamic Programming | O(n) | O(n) | Answer for n follows from a few earlier positions; overlapping subproblems over one sequence. |
| Algoritm | Time | Space | Qachon qo'llang… |
|---|---|---|---|
| Bubble Sort | O(n²) | O(1) | Saralashni o'rgatish, juda kichik array yoki deyarli saralangan ma'lumot — katta ma'lumotga emas. |
| Binary Search | O(log n) | O(1) | Saralangan, O(1) random access'li ma'lumot; aniq moslik yoki boundary savollar. |
| Breadth-First Search | O(V + E) | O(V) | Bir xil narxli grafda eng qisqa yo'l, level-order traversal yoki grid tarqalish masalalari. |
| Two Pointers | O(n) | O(1) | Saralangan array, target yig'indiga teng juftlik/uchlik — O(n²) nested loop o'rniga. |
| Sliding Window | O(n) | O(1) | Belgilangan k uzunlikdagi har bir contiguous subarray bo'yicha agregat (sum/max/count). |
| Fast & Slow Pointers | O(n) | O(1) | Linked list'da cycle aniqlash yoki o'rtani topish, O(1) xotira bilan. |
| Prefix Sum + Hash Map | O(n) | O(n) | Target yig'indili contiguous subarray'larni sanash/topish, ayniqsa manfiy sonlar bilan. |
| Depth-First Search | O(V + E) | O(V) | To'liq yo'l qidiruvi (backtracking), bog'langan komponentlar, cycle aniqlash, topological sort. |
| 1D Dynamic Programming | O(n) | O(n) | n uchun javob oldingi bir necha pozitsiyadan kelib chiqsa; overlapping subproblem'lar. |