جستجو در آرایه ها در c++

آموزش برنامه نویسی C++

جستجو در آرایه ها در C++ و C

در جستجوی دودویی یک لیست مرتب شده دنبال عنصر خاصی می گردیم.

فرض کنیم آرایه a  بصورت مرتب شده وجود داشته باشد.

میخواهیم محل عنصر  x را در آرایه a پیدا کنیم.

mid محل این عنصر را مشخص میکند.

پس x  را با a[mid] مشخص میکنیم.

در صورت برابری عنصر مورد نظر پیدا شده است و در غیر اینصورت اگر  x  از  a[mid] کوچکتر باشد نتیجه میگیریم که عنصر  x  در نیمه اول آرایه وجود دارد.

و یا اگر  x  از  a[mid] بزرگتر باشد در نیمه دوم آرایه موجود می باشد.

به همین ترتیبدر نیمه های بدست آمده عنصر وسط را مشخص میکنیم.

این عملیات را تکرار میکنیم تا در نهایت محل عنصر پیدا شود.

مثال:

فرض کنید در آرایه ای 100 عنصر بصورت مرتب شده وجود داشته باشد، برنامه ای بنویسید که عدد  x  را از ورودی گرفته و محل آن را در آرایه با جستجوی دودویی بدست آورد. (جستجو در آرایه ها در c++ )


void main ()
int a[100] = { . . . };  **\\ عناصر آرایه فرضی
int high = 99 , low = 0 , mid , found , x ;
cin >> x ;
while ( low < = high && ! found ) 
{
   mid = ( low + high ) / 2;
   if ( a [ mid ] > x ) found = 1 ;
   else if ( a [ mid ] > x ) high = mid - 1 ;
   else low = mid + 1 ;
}
if ( found ) cout << mid ;
else cout << -1 ;
}

چند نمونه سوال پایه ای درباره برنامه سی:

برنامه تبدیل مبنا را بنویسید ؟

(برنامه ای که عدد a  و  b  را گرفته و a  را به مبنای  b  میبرد)


void main ()
{
int a, b , r , s = 0 ;
cin >> a;
cin >> b;
while (a)
{
   r = (a % b) ;
   a = a / b ;
   s = r + s * 10 ;
}
cout << s;
}

برنامه ای بنویسید که خروجی زیر را چاپ کند : (برنامه چاپ ستاره)

*

**

***

****

*****

******


void main ()
{
int i, j;
for ( i = 1 ; i < = 6 ; i++ )
{
   for ( j = 1 ; j < = i ; j ++ )
      cout << "*" ;
   cout << "\n" ;
}
}

  • نکته مهم : 

برای چاپ در خط بعد از علامت  “n\” استفاده می شود که مخفف کلمه  new line می باشد .