×

الگوریتم جستجو دودویی چیست ؟

الگوریتم جستجو دودویی چیست ؟

الگوریتم جستجوی دودویی یک الگوریتم کارآمد برای جستجو در یک لیست مرتب (مثلاً یک آرایه) استفاده می‌شود. در این الگوریتم، میانه لیست گرفته می‌شود و با مقایسه میانه با عنصر مورد نظر، جستجو در نصف لیست که احتمالاً حاوی عنصر مورد نظر است، انجام می‌شود. این عمل به صورت بازگشتی ادامه می‌یابد تا عنصر مورد نظر پیدا شود یا لیست به یک عنصر یا لیست خالی برسد.

الگوریتم جستجوی دودویی به شکل زیر عمل می‌کند:

۱. مقدار میانه لیست را محاسبه می‌کنیم.
۲. اگر مقدار میانه با عنصر مورد نظر برابر باشد، عنصر پیدا شده است. الگوریتم پایان می‌یابد.
۳. اگر مقدار میانه از عنصر مورد نظر کمتر باشد، جستجو را در نصف بالایی لیست (اعداد بزرگتر) انجام می‌دهیم.
۴. اگر مقدار میانه از عنصر مورد نظر بیشتر باشد، جستجو را در نصف پایینی لیست (اعداد کوچکتر) انجام می‌دهیم.
۵. این مراحل را به صورت بازگشتی ادامه می‌دهیم تا عنصر مورد نظر پیدا شود یا لیست به یک عنصر یا لیست خالی برسد.

حالا یک مثال کد در زبان پایتون:

 

def binary_search(arr, target):
   left, right = 0, len(arr) - 1
   while left <= right:
       mid = (left + right) // 2  # Calculate the middle of the list
       # Target element found
       if arr[mid] == target:
           return mid
       # If the middle element is smaller than the target, search in the upper half of the list
       elif arr[mid] < target:
           left = mid + 1
       # Otherwise, search in the lower half of the list
       else:
           right = mid - 1
   # Target element not found
   return -1
# Example of using the function
arr = [1, 3, 5, 7, 9, 11, 13, 15]
target = 7
result = binary_search(arr, target)
if result != -1:
   print(f"Element {target} found at index {result}.")
else:
   print("Target element not found.")

در این مثال، الگوریتم جستجوی دودویی در یک لیست مرتب اعداد جستجوی عدد ۷ را انجام می‌دهد. نتیجه این مثال این است که عدد ۷ در اندیس ۳ یافت شده است.

مقالات مرتبط

استفاده از فونت اختصاصی در CSS

استفاده از فونت‌های اختصاصی در طراحی وب می‌تواند به جذابیت بصری و حرفه‌ای‌تر شدن سایت …

58 بازدید

هنر وسط‌چین کردن در CSS: از Flexbox تا Grid و فراتر

وسط چین کردن المان‌ها در CSS یکی از مهارت‌های کلیدی برای هر طراح وب است. …

74 بازدید

انواع حلقه در جاوااسکریپت: معرفی و کاربردهای پیشرفته

جاوااسکریپت، به عنوان یکی از محبوب‌ترین زبان‌های برنامه‌نویسی وب، ابزارهای مختلفی

61 بازدید

راهنمای جامع useState در React

useState یک هوک است که به شما اجازه می‌دهد تا state محلی را در یک

55 بازدید

آشنایی با JSX: نوشتن کد های React به زبان ساده

JSX مخفف JavaScript XML است و یک توسعه‌ی سینتکسی برای JavaScript به شمار می‌رود که

47 بازدید

راهنمای جامع استفاده از کانتینرها در Bootstrap برای طراحان وب

کانتینرها در Bootstrap به عنوان اولین لایه برای ساخت و طراحی یک صفحه وب به …

51 بازدید

Bootstrap: راهنمای جامع برای تازه‌کاران فرانت‌اند

Bootstrap یکی از محبوب‌ترین چارچوب‌های جلوه‌بندی وب است که برای توسعه‌دهندگان فرانت‌ان

40 بازدید

راهنمای جامع Tailwind CSS برای تازه‌کاران

راهنمای جامع Tailwind CSS برای تازه‌کاران

39 بازدید

پنج وبسایت ضروری و جذاب برای برنامه‌نویسان فرانت‌اند

پنج وبسایت ضروری و جذاب برای برنامه‌نویسان فرانت‌اند: ابزارهایی که نباید از دست داد!

54 بازدید

کدام فریمورک CSS برای برنامه‌نویسان فرانت‌اند مبتدی بهتر است؟ Bootstrap، Tailwind یا Bulma؟

کدام فریمورک CSS برای برنامه‌نویسان فرانت‌اند مبتدی بهتر است؟ Bootstrap، Tailwind یا Bulma؟

52 بازدید

آسیب‌شناسی کمال‌گرایی: تاثیرات آن بر برنامه‌نویسان و پروژه‌ها

کمال‌گرایی در برنامه‌نویسی مفهومی است که به تلاش برای نوشتن کدهایی با بالاترین استانداردهای کیفی …

54 بازدید

ساخت انیمیشن پارالاکس با کتابخانه

ساخت انیمیشن پارالاکس با کتابخانه

113 بازدید

مراحل نصب ری‌اکت جی‌اس

ری‌اکت (React) یک کتابخانه جاوااسکریپت متن باز برای ساخت رابط کاربری (UI) است که توسط …

109 بازدید

شبکه های اجتماعی مهم برای برنامه نویسان

شبکه های اجتماعی مهم برای برنامه نویسان

236 بازدید

قواعد نام گذاری در برنامه نویسی که باید بلد باشید !!

قواعد نام‌گذاری در برنامه‌نویسی مجموعه‌ای از قوانین و توصیه‌ها هستند که برای انتخاب نام‌های متغیرها،

236 بازدید

چطوری کارآموزی برنامه نویسی داشته باشیم؟

وقتی یه مدت از شروع برنامه نویسی من گذشت و زبان ها و تکنولوژی ها …

353 بازدید

چطوری ترس از مصاحبه و استخدام رو از بین ببریم؟

بهترین روش برای کاهش ترس از استخدام شدن و شرکت

313 بازدید

آیا برای برنامه نویس شدن باید دانشگاه برم؟

نه، برای برنامه‌نویس شدن شما نیازی به حضور در دانشگاه ندارید. در حقیقت

265 بازدید

برنامه نویسی چیست ؟

برنامه‌نویسی یکی از حیاتی‌ترین و مهم‌ترین حرفه‌های امروزی است که در بسیاری از صنایع و …

73 بازدید