Ritwik Biswas
Ritwik Biswas

Reputation: 1409

Calculating average case complexity of Quicksort

I'm trying to calculate the big-O for Worst/Best/Average case of QuickSort using recurrence relations. My understanding is that the efficiency of your implementation is depends on how good the partition function is.

Worst Case: pivot always leaves one side empty

Best Case: pivot divides elements equally

Average Case: This is where I'm confused how to represent the recurrence relation or how to approach it in general.

I know the average case big-O for Quicksort is O(nlogn) I'm just unsure how to derive it.

Upvotes: 0

Views: 5525

Answers (1)

Patrick87
Patrick87

Reputation: 28292

When you pick the pivot, the worst you can do is 0 | n and the best you can do is n/2 | n/2. The average case will find you getting a split of something more like n/4 | 3n/4, assuming uniform randomness. Plug that in and you get O(nlogn) once constants are eliminated.

Upvotes: 1

Related Questions