I don't understand how this function works exactly. I would appreciate it if someone could thoroughly walk through the code that would be great. It basically finds the minimum value in an array. I specifically don't understand the min = part and some of the code after that
Thanks in advance.

insert
Code:
int minimum(const int[a], int count){
  int min;

  if(count <= 0 )
    return 0;

  min = minimum(a, count - 1);

  if (count == 1 || a[count - 1] < min)
    return a[count - 1];

  return min;
}