ورود

View Full Version : الگوریتم جستجوی دو دویی



omid68
شنبه 26 دی 1388, 16:00 عصر
سلام بچه ها من این الگوریتم رو یکی از دوستام نوشته برای جستجوی دو دویی می خواستم ببینم ور.ودی هایی که در این تابع است به چه دردی می خوره و چی ها هستن

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
}

qwerty11
شنبه 26 دی 1388, 16:13 عصر
ورودی اول (A)در واقع یه آرایه هستش که به اشتباه یه متغیر تعریف شده. آرایه ای هستش که میخوایم جستجو رو روی اون انجام بدیم.

value مقداری هستش که میخوایم جستجوش کنیم تو آرایه.

low حد پایینی ایندکسی هستش که امکان داره value توش باشه. در واقع برای تمام x های کمتر از low داریم : value > َA[x]

high حد بالایی ایندکسی هستش که امکان داره value توش باشه. در واقع برای تمام x های بزرگتر از high داریم : A[x] > َvalue