void quickSort( int a[], int l, int r)

{

if(l<r) 

{

int p=partition(a, l, r);

quickSort(a, l , p-1);    // 1 -> 1

quickSort(a , p+1, r);    // 1 -> 2

}

}



분할(= partition() ) 하는거까진 알겠는데 저기 quickSort()를 두번 재귀하는부분을 잘모르겠어요


한번 재귀는 알겠는데말이죠...


첫번째 재귀함수를 1 -> 1 이라 하고 두번째 재귀함수를 1 -> 2 라고 하고 첫번째 재귀함수가 호출하는 자기자신을 1 - > 1 -> 1 이라 하면



1 -> 1 -> 1 -> 1 -> 1 재귀가 종료되면 


a) 1 -> 1 -> 1 -> 2


b) 1 -> 2 -> 1 -> 1  



a,b 둘중 어느 순서로 실행되는건가요?