Thursday, April 12, 2012

Program 15TH in C++ (VERSION 1)

PROBLEM STATEMENT :

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