i) note that for an array of size n, the last valid index is n-1
ii) standard recursion (not efficient, btw)
int FindMin(int mat[MAX],int size)
{
if (size==0) return 0;
int min = FindMin(mat, size-1);
return std::min(min, mat[size-1]);
}
int FindMin(int mat[MAX],int size)
{
if (size==0) return 0;
int min = FindMin(mat, size-1);
return std::min(min, mat[size-1]);
}
To copy to clipboard, switch view to plain text mode
iii) linear code (faster)
i
nt FindMin(int mat[MAX],int size)
{
if (size==0) return 0;
int min=mat[0];
for (int=1; i<size; ++i)
min=std::min(min,mat[i]);
return min;
}
nt FindMin(int mat[MAX],int size)
{
if (size==0) return 0;
int min=mat[0];
for (int=1; i<size; ++i)
min=std::min(min,mat[i]);
return min;
}
To copy to clipboard, switch view to plain text mode
iv) easiest way: do NOT INVENT THE WHEEL all over again
#include <algorithm>
int FindMin(int mat[MAX], int size)
{
return *std::min_element(mat, mat+size)
}
#include <algorithm>
int FindMin(int mat[MAX], int size)
{
return *std::min_element(mat, mat+size)
}
To copy to clipboard, switch view to plain text mode
for such trivial things, the stdlib already offers algorithm that work (if you use Qt classes, Qt offers such algorithms as well)
HTH
Bookmarks