According to [the docs](http://msdn.microsoft.com/en-us/library/b0zbh7b6.aspx) `List<T>.Sort` uses the QuickSort algorithm. I've heard that this can exibit worst case performance when called on a pre-sorted list if the pivot is not chosen wisely.

Does the .NET implementation of QuickSort experience worst case behaviour on pre-sorted lists?

In my case I'm writing a method that's going to do some processing on a list. The list needs to be sorted in order for the method to work. In most usage cases the list will be passed already sorted, but it's not impossible that there will be some small changes to the order. I'm wondering whether it's a good idea to re-sort the list on every method call. Clearly though, I am falling into the [premature optimization](http://c2.com/cgi/wiki?PrematureOptimization) trap.