Skip to content

Latest commit

 

History

History
59 lines (39 loc) · 1.77 KB

File metadata and controls

59 lines (39 loc) · 1.77 KB

Binary Search

تعریف

Binary Search یعنی جستجوی عنصر در آرایه مرتب با تقسیم بازه به دو نیمه.

در این درس:

  • طول آرایه (n) و عناصر آن از ورودی برنامه گرفته می‌شوند
  • یک مقدار کلید (key) برای جستجو دریافت می‌شود
  • آرایه باید مرتب باشد
  • با تقسیم مداوم بازه موقعیت کلید پیدا می‌شود

ایده کلی

در این درس:

  • آرایه با اندازه پویا (new) ساخته می‌شود

  • دو متغیر l و r بازه فعلی را مشخص می‌کنند

  • حلقه‌ای تا زمانی که l <= r ادامه دارد:

    • اندیس وسط mid محاسبه می‌شود
    • اگر عنصر وسط برابر کلید باشد → اندیس چاپ می‌شود
    • اگر عنصر وسط کمتر از کلید باشد → بازه به نیمه راست منتقل می‌شود
    • اگر بیشتر باشد → بازه به نیمه چپ منتقل می‌شود
  • اگر کلید پیدا نشود، -1 چاپ می‌شود

  • در پایان حافظه آرایه آزاد می‌شود (delete[])


نکات آموزشی

  • روش جستجوی سریع و کارآمد در آرایه مرتب

  • پیچیدگی زمانی: O(log n)

  • نیاز به آرایه مرتب دارد

  • تفاوت با Linear Search:

    • تعداد مقایسه‌ها بسیار کمتر است
    • برای آرایه‌های بزرگ بسیار مناسب‌تر

🧪 مثال اجرا

./05_binary_search 5 10 20 30 40 50 30

خروجی:

2

(عنصر 30 در اندیس ۲ قرار دارد)