Как посчитать O-нотацию в данной функции
void func(int A[], int low, int high)
{
int i = low;
int j = high;
int x = A[(low + high) / 2];
do {
while (A[i]< x)
++i;
while (A[j]> x)
--j;
if (i <= j)
{
int temp = A[i];
A[i] = A[j];
A[j] = temp;
i++; j--;
}
} while (i < j);
if (low < j) //recursion
func(A, low, j);
if (i < high) //recursion
func(A, i, high);
}
Есть такая функция. Мне нужно посчитать ее О-нотацию. while (A[i]< x) -O(n) и while (A[j]> x)- O(n). Тоесть О-нотация етих двух циклов O(n). И дальше я думаю што О-нотация цикла do while- O(A*N). Вопрос какая О-нотация всей етой функции, я не знаю как рекурсия повлияєт на О-нотацию цикла, и прав ли я вообще c О-нотациями циклов.