Comparison of all sorting algorithms Algorithm Complexity When to use? 3-way-string-quicksort.js O(N^2) bubblesort.js O(N^2) bucketsort.js O(N) countingsort.js O(N) heapsort.js O(N log N) insertion-binary-sort.js O(N^2) insertionsort.js O(N^2) lsd.js O(N*M) for N keys which have M or fewer digits mergesort.js O(n log(n)) msd.js O(N*M) for N keys which have M or fewer digits oddeven-sort.js O(N^2) quicksort-middle.js O(N log(N)) quicksort.js O(nlog n) radixsort.js O(N K) for N keys with K being recursive-insertionsort.js O(N^2) selectionsort.js O(N^2) shellsort.js O((nlog(n))^2)