I am having trouble figuring out what the recursive function does in the insert sort. Wouldn't the recursive line block the rest of the code from working. I am just looking for a quick explanation.

```
void insertion_sort-recur(int a[], int n){
if(n<=1)
return;
insertion-sort_recur(a, n-1);//how does this line work
temp=a[n-1];
for(int i=n-2; i>=0 && temp<a[i];i--){
a[i+1]=a[i];
} a[i+1]=temp;
}
}
```