Matrix with rows and column sorted. Find a particular element.
NOTE:
It works for all kind of arrays with O(m+n) time complexity.
SOLUTION:
#include <iostream.h>
#include <cstdio>
using namespace std;
void find(int a2d[][4], int m, int n, int target)
{
int i=0;
int j=n-1;
int flag=1;
while(i>=0 && i<m && j >=0 && j<n)
{
if(a2d[i][j]==target)
{
flag=0;
cout<<"Element "<<target << "exists at " << " row : "<<i<<" and column : "<<j<<endl<<endl;
j--;
}
else if(a2d[i][j] > target)
{
j--;
}
else
{
i++;
}
}
if(flag == 1)
{
cout<<"\n\n Element is not found in the given array \n\n";
}
}
int main()
{
int row=0;
int col=0;
int a2d[][4]={{1,2,3,5},{2,5,6,7},{3,6,11,13},{4,10,15,18}};
find(a2d,4,4,6);
}
No comments:
Post a Comment