Selection Sort recursive java code

I don't understand something about the selection sort recursive java code.

Code:

`void selection sort(int[]data, int lo, int hi){`

if (lo < hi){

swap(data, lo, findMaximum(...));

selectionSort(data, lo+1, hi);

}

}

(findMaximum finds maximum value, swap swaps maximum value with lo)

I think I just dont know what lo and hi are... I would just assume that lo=a[0] and hi=a[length-1]. So if we would have an array

3 2 7 1

lo=a[0] and hi=a[3]. So since a[0] is always > a[3], selectionSort would never be able to swap the 7... (even if hi=a[1] it would never be able to swap the 7...)