***2
روش جستجوی دودویی
اگر آرایه ای که عمل جستجو درآن انجام میشود، مرتب باشد،جستجوی دودویی در آن انجام خواهد شد .در این روش نسبت به روش ترتیبی ، با تعداد مقایسه کمتری می توان عنصر مورد نظر را یافت.الگوریتم این روش بدین ترتیب است:عنصر وسط آرایه پیدا می شود و با مقدار قابل جستجومقایسه می شود.اگر با هم برابر باشند ، جستجو خاتمه می یابد.در غیر این صورت ، اگر مقدار مورد جستجو از عنصر وسط بزرگتر باشند ،جستجوی بعدی در نیمه بالای آرایه انجام می شود.هر یک از این دو نیمه که انتخاب شود، با آنها مثل آرایه کامل برخورد می شود.یعنی ، در این نیمه عنصر وسط پیدا می شود وبا عنصر مورد جستجو مقایسه می گردد و براساس نتیجه ، آرایه باز هم به دو نیمه تقسیم می شوداین روند آنقدر ادامه می یابد تا اینکه مقدار مورد نیازپیدا شود و یا همه عناصر مورد مقایسه قرار گیرند و مقدار مورد نظر وجود نداشته باشد.
***3
اگر چه مفهوم جستجوی دودویی ساده است اما باید دز هنگام نوشتن الگوریتم نکاتی را در نظرگرفت:
1.در مورد بردارهایی که تعداد عناصرشان زوج است، عنصر وسط بردار منحصر به فرد نسیت
2. در مواردی که جستجو ناموفق باشد زمان خاتمه کار الگوریتم بسادگی مشخص نمی شود
در اینجا با تشریح روش فوق به صورت ساده تر شما را با جزییات کار آشنا می سازیم.
*فرض کنید بردار N عنصریA به صورت مرتب شده صعودی وجود داشته باشد ، در این صورت الگوریتم جستجوی کلمه یا عدد p در بردار فوق به صورت زیر خواهد بود :
***4
مرحله اول :مقدار صفر را در متغیرlowومقدار N+1را در متغیرHIGH قرار می دهیم.
HIGH ßN +1 و LOW ß 0
مقدار ابتدایی ترینLOW و مقدار انتهایی ترینHIGH ناحیه جستجو می باشند.
مرحله دوم : برای پیدا کردن نقطه میانی بردار فوق ، خارج قسمت صحیح تقسیم LOW+HIGH)) بر 2 را در MIDقرار می دهیم
2/(LOW+HIGH) می رود در MID
مرحله سوم : اگر MID= LOW است ، کلمهp در بردار وجود ندارد در این صورت الگوریتم پایان می پذیرد، در غیر این صورت نرخله چهارم را انجام می دهیم