חיפוש במערך דו־ממדי
שיעור 11 מתוך 26 בקורס מערכים ב-C++ של Coddy.
חיפוש במערך דו־ממדי או במטריצה דומה לחיפוש במערך חד־ממדי. עלינו לעבור על כל איבר, ואם הוא נמצא במטריצה, עלינו להחזיר true; אחרת, false.
השתמשו בלולאות מקוננות כדי לעבור על האיברים באמצעות המשתנים i ו־j
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(arr[i][j]==key){
return true;
}
}
}
return false;ניתוח סיבוכיות זמן
מכיוון שאנו משתמשים בלולאה בתוך לולאה, עלינו לעבור על n איברים n פעמים, ולכן הסיבוכיות היא O(n2).
אתגר
בהינתן מטריצה ומספר השורות והעמודות שלה, הדפיסו את ריבועי האיברים אם סכום האינדקסים שלהם זוגי.
לדוגמה, arr[1][3], אז 1+3=4, שהוא זוגי, ולכן העלו את האיבר הזה בריבוע והדפיסו את שאר האיברים כפי שהם.
נסו בעצמכם
#include<iostream>
using namespace std;
int main(){
int m,n;
cin>>m>>n;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cin>>arr[i][j];
}
}
//Code here
return 0;
}כל השיעורים ביחידה מערכים ב-C++
תרגלו בעצמכם: קומפיילר C++ אונליין