Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which sorting algorithm is used by .net in IComparer

Do any one know which sorting algorithm is used by .net when we implement IComparer in our class?

like image 403
Programmer Avatar asked Oct 15 '08 13:10

Programmer


2 Answers

QuickSort seems to be it.

The documentation on IComparer says

This interface is used in conjunction with the Array.Sort and Array.BinarySearch methods.

The Array.Sort documentation says

This method uses the QuickSort algorithm. This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal.

like image 133
bdukes Avatar answered Nov 12 '22 18:11

bdukes


The current documentation says it uses a type of Introsort, a hybrid sorting algoritm:

Is works like this:

  1. If the partition size is fewer than 16 elements, it uses an insertion sort algorithm

  2. If the number of partitions exceeds 2 * LogN, where N is the range of the input array, it uses a Heapsort algorithm.

  3. Otherwise, it uses a Quicksort algorithm.

    source here

like image 33
Razvan Avatar answered Nov 12 '22 19:11

Razvan