workshophub563992

Common mistakes in binary search

Nov 6th, 2026
8
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. Common mistakes in 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. Не обрабатывать крайние случаи. Пустой ввод, ноль, отрицательные числа — именно там решение чаще всего ломается.
  44. 2. Смешивать типы данных. Строки и числа ведут себя по-разному; неявное приведение типов — источник неочевидных багов.
  45. 3. Писать код без проверки на маленьких примерах. Прогоните решение вручную на 2-3 значениях, прежде чем считать задачу решённой.
  46.  
  47. Если решение заработало с первого раза — всё равно сверьтесь со списком ошибок: половина багов рождается при доработках.
  48.  
  49. View Full Gallery → https://go.cbrop.com/prse
  50.  
  51. Related:
  52.  
  53. https://kappa.lol/vFJYsD
  54. https://ink.synkosmos.org/ozd1c055/djagon85
  55. https://milhench.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/bootyandthebeast69-swap-7a72e8.pdf
  56. https://yakihonne.com/article/naddr1qvzqqqr4gupzppevz8g38vxzcudurydhdm647e3q8m48e5fgv0840uqp7t3qfwykqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknxdmzx33kydmy94jkydrz956rxwrr95ur2ctr956nxde5xv6kxdfsvy6x2lyuehs
  57. https://pastebin.com/iEvErAuc
  58.  
Advertisement
Add Comment
Please, Sign In to add comment