I have an assignment on recursion that calls for me to use recursion to find the largest element in an array. I have a general understanding on how recursion works but this problem throws me off because I can't figure out how to correctly implement the getMaximum() function which is suppose to keep calling itself to find the largest element. I kinda have an idea on the special case which causing the recursion to terminate but that's about it. Any help would be appreciated.

```
/**
Computes the maximum of a set of data values.
*/
public class DataSet
{
private int[] values;
private int first;
private int last;
/**
Constructs a DataSet object.
@param values the data values
@param first the first value in the data set
@param last the last value in the data set
*/
public DataSet(int[] values, int first, int last)
{
this.values = values;
this.first = first;
this.last = last;
}
/**
Gets the maximum in the set of data values
@return the maximum value in the set
*/
public int getMaximum()
{
}
}
```

Tester supplied by my instructor:

```
import java.util.Random;
/**
A tester class for the recursive maximum.
*/
public class DataSetTester
{
public static void main(String[] args)
{
int[] values = { 1, 10, 100, -1, -10, -100, 100, 0 };
DataSet d = new DataSet(values, 0, values.length - 1);
System.out.println("Maximum: " + d.getMaximum());
System.out.println("Expected: 100");
}
}
```