퀵 정렬 카운터,스왑카운터 질문드립니다

qlzhkdldjt의 이미지

void QuickSort(int *arr, int n)
{
int pivot = 0;
int left = 0, right = 0;
clock_t st, et;
st = clock();
if (n <= 1)
{
return;
}
left = 0;
right = n;
while (1)
{
for (left++; (left= arr[left]); left++)quick_count++;
for (right--; (right>0) && (arr[0] if (left {
SWAP(arr[left], arr[right]);
quick_swap++;

}
else
{
break;
}
}
SWAP(arr[0], arr[right]);
quick_swap++;
//PrintSpace(arr - origin);
et = clock();
quick_sec += (double)(et - st) / CLOCKS_PER_SEC;
QuickSort(arr, right);
QuickSort(arr + left, n - left);
}

횟수가 이상하게 나오는데 카운터 위치가 잘못된건지 알 수가 없네요 어딜 고쳐야할까요?