دنیای برنامه نویسی و اپلیکیشن

baner-telegram
شما اینجا هستید : صفحه اول » آموزش برنامه نویسی » آموزش ++C » آموزش الگوریتم جستجوی دودویی یا باینری در C++ به صورت فیلم
آموزش الگوریتم جستجوی دودویی یا باینری در C++ به صورت فیلم

آموزش الگوریتم جستجوی دودویی یا باینری در C++ به صورت فیلم

در این قسمت از فیلم آموزش ++C نحوه جستجو در آرایه توضیح داده شده است . یکی از بیشترین اعمالی که در کامپیوتر استفاده می شود ، عمل جستجو است ، جستجو در آرایه های نامرتب به صورت ترتیبی و در آرایه های مرتب شده از جستجوی دودویی یا باینری استفاده می کنیم .

جستجوی ترتیبی :

در این روش عنصری را که می خواهیم پیدا کنیم را با هریک از عناصر آرایه مقایسه می کنیم اگر برابر بودند جستجو تمام می شود وگرنه جستجو با عنصر بعدی انجام می شود . این روند تا انتها ادامه پیدا می کند تا به جواب برسیم و اگر به جواب نرسیدیم در خروجی پیغام ” عنصر مورد نطر پیدا نشد ” را نمایش می دهیم .

الگوریتم جستجوی دودویی ( Binary Search Algorithm ) :

جستجوی دودویی در آرایه مرتب شده انجام می شود ، پس اولین نکته این است که باید اول آرایه را مرتب کنیم و بعد جستجوی دودویی را در آن انجام دهیم . در جستجوی دودویی عنصر مورد نظر با عنصر وسط آرایه مقایسه می شود ، اگر با این عنصر برابر بود جستجو تمام می شود و گرنه اگر عنصر مورد جستجو از عنصر وسط آرایه بزرگتر یا کوچک تر بود ، آرایه به دو بخش تفسیم می شود :

بخشی از آرایه که عناصر آن بزرگتر از عنصر مورد جستجو هستند و بخش دیگر آن که دارای عناصر کوچک تر از عنصر مورد استفاده هستند . حالا اگر عنصر مورد جستجو از عنصر وسط بزرگتر بود ، در قسمتی که دارای عناصر بزرگتر هستند دنبال آن عنصر می گردیم وگرنه در بخش دیگر آرایه انجام می شود و این روند تا رسیدن به جواب یا همان عنصری که دنبال آن هستیم ادامه پیدا می کند .

سورس کد جستجوی دودویی در C++ :

#include <iostream.h>
#include <conio.h>

void main(){
clrscr();
	       int array[5]={12 , 34 , 3 ,10 , 13} , number = 121 , i ,j , temp;

	       for(i=0 ; i< 5 ; i++){
		  for(j=0 ; j< 4 ; j++){
		    if(array[j] > array[j+1]){
		      temp =array[j];
		      array[j]= array[j+1];
		      array[j+1] = temp;

		    }
		  }
	       }

	       for(i=0 ; i<5 ; i++){
		   cout<<array[i]<<"  ";
	       }

	       //----------Search----------------------
	       int start = 0 , end = 4 , mid;

	       while(start <= end){

		mid = (start + end ) / 2 ;
		if(array[mid] == number){
		   cout<<"\n Found :"<<array[mid];
		   break ;
		}

		if(number < array[mid]){
		     end = mid -1 ;
		}else if( number > array[mid]){
		    start = mid + 1;
		 }

	       }

	      if(start > end ){
		  cout<<"\n Number Not Found !!!!!!!";
	      }

getch();
}

این الگوریتم در فیلم آموزش ++C آموزش داده شده است و برای توضیحات بیش تر می توانید به آن مراجعه کنید .

فیلم آموزش جستجویی دودویی را می توانید از لینک زیر دانلود کنید .

پیشنهاد می کنیم حتما بخوانید :

درباره : رضا طوماری

عاشق برنامه نویسی

نظرات کاربران :


  1. امین گفت:

    سلام خسته نباشید ….میشه جستجوی ترتیبی هم بزارین تشکر از لطفتون

  2. محمد برزگر گفت:

    واسه منم خطا گرفت
    چون بستگی داره از چی IDE استفاده می کنید اگر از ++ turbo c استفاده میکنید این جواب میده اما اگر شما از ++ Dev-c استفاده میکنید با void رو بردارین و از اینطوری استفاده کنین : () main

    مثلا در ++turbo c اینطوری از این کتابخونه استفاده میکنیم :
    include // this is true#
    مثلا در ++ Dev-c :

    include //this is true#
    using namespacea std; //this is true

    همینطور در ++ Dev-c نیازی به این نیست که کتابخونه رو معرفی کنین .. و متدهای مربوط رو معرفی کنین من جمله : ()clrscr و ()getch ولی در توربو سی پلاس پلاس نیاز هست.

    البته بازم بستگی داره از چه محیط برنامه نویسی استفاده میکنین و کامپایلرش چطور میفهمه

    موفق باشین

  3. ASHKAN گفت:

    سلام کدتون مشکل داره

    دو تا از قسمت ها با هم جا ب جا هستن

  4. مائده گفت:

    سلام خسته نباشید
    چرا از قسمت void main خطا میگیره؟؟؟؟

جواب سوال چیه ؟ *