loading...
دانلود سرای دانشجویی

جستجوی دودوئی

الگوریتم جستجوی دودوئی (binary search algorithm) روشی برای جستجوی یک مقدار درون یک لیست مرتب است. عنصر وسط لیست انتخاب شده و با آرگومان جستجو مقایسه می شود تا تعیین شود از آن بزگتر، کوچکتر یا مساوی است. اگر آرگومان از عنصر انتخاب شده بزرگتر باشد جستجو در نیمه پایینی و اگر کوچکتر باشد در نیمه بالائی لیست ادامه پیدا می کند.

کد بازگشتی جستجوی دودوئی به صورت زیر است:

int BinarySearch(int A, int value, int low, int high) {
  if (high < low)
    return -1    // not found
  mid = (low + high) / 2
  if (A[mid] > value)
    return BinarySearch(A, value, low, mid-1)
  else if (A[mid] < value)
    return BinarySearch(A, value, mid+1, high)
  else
    return mid    // found
}

زمان جستجو O(log n) است که زمان بهتری نسبت به جستجوی خطی است. اگر آرگومان جستجو برابر با عنصر وسط لیست باشد با یک مقایسه پیدا می شود که بهترين حالت است. در بدترین حالت به ⌊log2 n ⌋ + 1 مقايسه نياز است.

جستجوی دودوئی مثالی از یک الگوریتم تقسیم و غلبه است.

ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
آمار سایت
  • کل مطالب : 4247
  • کل نظرات : 0
  • افراد آنلاین : 11
  • تعداد اعضا : 2927
  • آی پی امروز : 18
  • آی پی دیروز : 271
  • بازدید امروز : 52
  • باردید دیروز : 1,244
  • گوگل امروز : 3
  • گوگل دیروز : 35
  • بازدید هفته : 3,559
  • بازدید ماه : 40,724
  • بازدید سال : 256,103
  • بازدید کلی : 8,434,797
  • کدهای اختصاصی