pb62196676

A step-by-step look at binary search

Nov 13th, 2026
6
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. A step-by-step look at binary search
  2.  
  3. Пройдём задачу шаг за шагом — такой формат удобен для первого знакомства с алгоритмами.
  4.  
  5. Задача
  6.  
  7. Дан отсортированный список чисел arr и число target. Найти его индекс или вернуть -1, если элемента нет.
  8.  
  9. Решение
  10.  
  11. ``python
  12. def binary_search(arr: list[int], target: int) -> int:
  13. lo, hi = 0, len(arr) - 1
  14. while lo <= hi:
  15. mid = (lo + hi) // 2
  16. if arr[mid] == target:
  17. return mid
  18. if arr[mid] < target:
  19. lo = mid + 1
  20. else:
  21. hi = mid - 1
  22. return -1
  23.  
  24. print(binary_search([1, 3, 5, 7, 9, 11], 7))
  25. `
  26.  
  27. Как это работает
  28.  
  29. На каждом шаге диапазон поиска сокращается вдвое: если середина меньше цели — ищем справа, иначе слева. Отсюда и логарифмическая скорость.
  30.  
  31. Пример работы
  32.  
  33. `text
  34. 3
  35. ``
  36.  
  37. Сложность
  38.  
  39. O(log n) по времени, O(1) по памяти.
  40.  
  41. Разбор по шагам
  42.  
  43. 1. Шаг 1. Входные данные. Проверяем, что приходит в функцию, и какие значения считаются корректными.
  44. 2. Шаг 2. Основной цикл. Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
  45. 3. Шаг 3. Результат. Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.
  46.  
  47. Читая чужой код, повторите тот же мысленный разбор по шагам — это самый быстрый способ научиться.
  48.  
  49. View Full Gallery → https://go.cbrop.com/prse
  50.  
  51. Related:
  52.  
  53. https://gal84381.carrd.co/
  54. https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/nano-ceramic-6087df.pdf
  55. https://slugpost.com/word-count-tests-ikgx4
  56. https://gall.dcinside.com/mgallery/board/view/?id=nmixxreality&no=3545
  57. https://pastebin.com/2mXn7kT0
  58.  
Advertisement
Add Comment
Please, Sign In to add comment