بخشی از پاورپوینت
اسلاید 1 :
روش جستجوی دودویی
اگر آرایه ای که عمل جستجو درآن انجام میشود، مرتب باشد،جستجوی دودویی در آن انجام خواهد شد .در این روش نسبت به روش ترتیبی ، با تعداد مقایسه کمتری می توان عنصر مورد نظر را یافت.الگوریتم این روش بدین ترتیب است:عنصر وسط آرایه پیدا می شود و با مقدار قابل جستجومقایسه می شود.اگر با هم برابر باشند ، جستجو خاتمه می یابد.در غیر این صورت ، اگر مقدار مورد جستجو از عنصر وسط بزرگتر باشند ،جستجوی بعدی در نیمه بالای آرایه انجام می شود.هر یک از این دو نیمه که انتخاب شود، با آنها مثل آرایه کامل برخورد می شود.یعنی ، در این نیمه عنصر وسط پیدا می شود وبا عنصر مورد جستجو مقایسه می گردد و براساس نتیجه ، آرایه باز هم به دو نیمه تقسیم می شوداین روند آنقدر ادامه می یابد تا اینکه مقدار مورد نیازپیدا شود و یا همه عناصر مورد مقایسه قرار گیرند و مقدار مورد نظر وجود نداشته باشد.
اسلاید 2 :
اگر چه مفهوم جستجوی دودویی ساده است اما باید دز هنگام نوشتن الگوریتم نکاتی را در نظرگرفت:
1.در مورد بردارهایی که تعداد عناصرشان زوج است، عنصر وسط بردار منحصر به فرد نسیت
- در مواردی که جستجو ناموفق باشد زمان خاتمه کار الگوریتم بسادگی مشخص نمی شود
در اینجا با تشریح روش فوق به صورت ساده تر شما را با جزییات کار آشنا می سازیم.
*فرض کنید بردار N عنصریA به صورت مرتب شده صعودی وجود داشته باشد ، در این صورت الگوریتم جستجوی کلمه یا عدد p در بردار فوق به صورت زیر خواهد بود :
اسلاید 3 :
مرحله اول :مقدار صفر را در متغیرlowومقدار N+1را در متغیرHIGH قرار می دهیم.
HIGH ßN +1 و LOW ß 0
مقدار ابتدایی ترینLOW و مقدار انتهایی ترینHIGH ناحیه جستجو می باشند.
مرحله دوم : برای پیدا کردن نقطه میانی بردار فوق ، خارج قسمت صحیح تقسیم LOW+HIGH)) بر 2 را در MIDقرار می دهیم
2/(LOW+HIGH) می رود در MID
مرحله سوم : اگر MID= LOW است ، کلمهp در بردار وجود ندارد در این صورت الگوریتم پایان می پذیرد، در غیر این صورت نرخله چهارم را انجام می دهیم
اسلاید 4 :
مرحله چهارم : اگر P= A( IMD )است ،جسحجو موفقیت آمیز بوده والگوریتم پایان می یابد در غیر این صورت اگرP <A (MID) است مقدار MID در HIGH قرار داده و به مرحله دوم باز می گردیم و در غیر این صورت اگر P > A( MID) است مقدارMID را در LOW قرار داده وبه مرخله دوم باز می گردیم
****** (( الگوریتم فوق در برداری حاویN کلمه که عناصر آن با ترتیب صعودی قرار گرفته اند،به دنبال کلمه مورد نظرP می گردد. ابتداP با عنصر میانی جدول مقایسه می شود . اگرP از این عنصر میانی بزرگتر یاشد در مرحله بعد با عنصر میانی نیمه دوم جدول مقایسه می گردد اگرP از این عنصر میانی کوچکتر باشد در مرحله بعد با عنصر میانی نیمه اول مورد مقایسه قرار می گیرد.این عمل هر بار با حذف نیمی از بردار ادامه می یابد تا اینکه یاP در بردارپیدا شود ویا اینکه معلوم شود که Pدر بردار نیست.))******
اسلاید 5 :
مثال
الگوریتمی که اسامی دانشجویان را که به طور صعودی مرتب هستند از ورودی خوانده، در آرایه قرار می گیرد .سپس نامی را از روش دودویی در آرایه جستجو می کند.
متغیر ها
تعداد دانشجویان N
آرایه S
متغیر کمکی SW
حد پایین آرایه L
حد بالای آرایه H
اندیس وسط آرایه M
نام مورد جستجو X
اسلاید 6 :
الگوریتم
Nرا بخوان
آرایهS را با N عنصر بخوان
1Lß
تا زمانی که L<=N مراخل 5و6 را اجرا کن
S(L) را بخوان
LßL+1
پایان حلقه
Xرا بخوان
Lß1
HßN
SWß0
تا زمانی که<=HوSW=0 مراحل 13 و14 را اجرا کن
(L+H)/2 =M
اگر S(M)= = X آنگاه SWß1
اسلاید 7 :
وگرنه اگر S(M)<X آنگاه LßM+1
وگرنه HßM-1
15.پایان حلقه L<= H وSW=0
- اگر SW=0 چاپ کن "نام وجود ندارد"
وگرنه چاپ کن "نام وجود دارد"
- پایان