در جستجوی دو دویی یک لیست مرتب شده دنبال عنصر های خاصی می گردیم فرض کنیم آرایه a بصورت مرتب شده وجود داشته باشد و می خواهیم محل عنصر xرا در آرایه پیدا کنیم .mid محل عنصر را مشخص می کند .xرا از a[mid] کوچکتر باشد نتیجه می گیریم که عنصر xدر نیمه اول آرایه وجود دارد و یا اگر xاز a[min]بزرگتر باشد در نیمه دوم آرایه موجود می باشد به همین ترتیب در نیمه های اول بدست آمده عنصر وسط را مشخص می کنیم وبا x مقایسه می کنیم این عملیات را تکرار می کنیم تا در نهایت محل عنصر پیدا شده.
مثال:
فرض کنید در آرایه ای 100 عدد بصورت مرتب وجود داشته باشد ،برنامه ای بنویسید که عدد x را گرفته و محل آن در آرایه با جسجوی دودویی بدست آورد.
Void main (){
Int a [100]={…}, high =99,low=o, mid,found =o,x;
Cin>>x;
While (low <=high &&! Found ){
Mid =(low+ high )12
If (a[low]= = x)found =1;
Else if (a[mind]>x)high =mind -1;
Else low =mid +1;
}
If (found ) cout <<mid
Else cout<<-1;
}
آرایه دو بعدی :
;[ستون] [ سطر ] نام آرایه نوع آرایه
مثال 1:
برنامه ای بنویسید که دو ماتریس 12×10 را دریافت کند و حاصل جمعشان را محاسبه و چاپ کند .
Void main (){
Int a [10][12],b[10][12],i,j,c[10][12]={0};
For (i =o;i<10;i++)
For (j=o;j<12;j++) {
Cin >>a[i][j]>>b[i][j];
C[i][j]=a[i][j]+b[i][j];
}
For (i=o;i<10;i++) {
For (j=o;j<12;j++)
Cout << “it”<<c[i][j]
Cout<<ende;
}
}
مثال 2 :
برنامه ای بنویسید که یک ماتریس 8×8 را دریافت کند و ترانهاده آنرا بدون استفاده از ماتریس کمکی چاپ کند .
Void main (){
Int a [8][8],i,j;
For (i=o;i<8;i++)
For (j=o,j<8;j++)
Cin >>a[i][j];
For (i=o;i<8;i++)
For (j=o;j<i;j++){
T=a[i][j];a[i][j]=a[j][i];a[j][i]=t;
}
}