# Algorithms | Sorting | Question 1

• Difficulty Level : Medium
• Last Updated : 28 Jun, 2021

What is recurrence for worst case of QuickSort and what is the time complexity in Worst case?
(A) Recurrence is T(n) = T(n-2) + O(n) and time complexity is O(n^2)
(B) Recurrence is T(n) = T(n-1) + O(n) and time complexity is O(n^2)
(C) Recurrence is T(n) = 2T(n/2) + O(n) and time complexity is O(nLogn)
(D) Recurrence is T(n) = T(n/10) + T(9n/10) + O(n) and time complexity is O(nLogn)

 `void` `exchange(``int` `*a, ``int` `*b)``{``  ``int` `temp;``  ``temp = *a;``  ``*a   = *b;``  ``*b   = temp;``}``  ` `int` `partition(``int` `arr[], ``int` `si, ``int` `ei)``{``  ``int` `x = arr[ei];``  ``int` `i = (si - 1);``  ``int` `j;``  ` `  ``for` `(j = si; j <= ei - 1; j++)``  ``{``    ``if``(arr[j] <= x)``    ``{``      ``i++;``      ``exchange(&arr[i], &arr[j]);``    ``}``  ``}``  ` `  ``exchange (&arr[i + 1], &arr[ei]);``  ``return` `(i + 1);``}``  ` `/* Implementation of Quick Sort``arr[] --> Array to be sorted``si  --> Starting index``ei  --> Ending index``*/``void` `quickSort(``int` `arr[], ``int` `si, ``int` `ei)``{``  ``int` `pi;    ``/* Partitioning index */``  ``if``(si < ei)``  ``{``    ``pi = partition(arr, si, ei);``    ``quickSort(arr, si, pi - 1);``    ``quickSort(arr, pi + 1, ei);``  ``}``}`