الگوریتم جستجوی دودویی: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جز ربات: تصحیح جایگذاری کاما، شمارگان هزارگان |
جز ربات: تصحیح کاما، شمارگان هزارگان |
||
خط ۱۶:
حتی اگر محدودهٔ اعداد مورد نظر نا محدود باشد(یعنی توسط N محدود نشده باشد) باز هم میتوان با حداکثر <math>2\lceil \log_2 k \rceil </math> مرحله(که K عدد انتخاب شدهاست) عدد مورد نظر را یافت بدین ترتیب که با شروع از یک و دو برابر کردن آن در هر مرحله ابتدا مرز بالایی را پیدا نموده و سپس عدد خواسته شده را پیدا میکنیم. به عنوان مثال اگر عدد انتخاب شده ۱۱ باشد ما میتوانیم ترتیب پرسشهای زیر را برای پیدا کردن عدد دنبال کنیم: ۱ ← ۲ ← ۴ ← ۸ ← ۱۶ ← ۱۲ ← ۱۰ ← ۱۱.
هم چنین میتوان این تکنیک را گسترش داد تا شامل اعداد منفی نیز
=== لیست های کلمات ===
خط ۲۳:
== تابع ==
[[پرونده:BinarySearchStats63.png|thumb|left|400px|تکرار برای ''N'' < 64]]
برای این که وارد جزئیات تابع شویم باید قراردادهای رسمی تری را تعریف می کنیم.ایده اولیه این است که داده ساختاری وجود دارد که به صورت آرایه A نمایش داده
داده ساختاری شامل دادهٔ دیگری به نام Key
هدف این است که مقدار x داده شده و اندیس p پیدا شود به طوری که A(p).Key = x.
|