title: When should one implement a simple or advanced sorting algorithm?
body: <p>Apart from the obvious "It's faster when there are many elements". When is it more appropriate to use a simple sorting algorithm (0(N^2)) compared to an advanced one (O(N log N))?</p>
  
  <p>I've read quite a bit about for example insertion sort being preferred when you've got a small array that's nearly sorted because you get the best case N. Why is it not good to use quicksort for example, when you've got say 20 elements. Not just insertion or quick but rather when and why is a more simple algorithm useful compared to an advanced?</p>
  
  <p>EDIT: If we're working with for example an array, does it matter which data input we have? Such as objects or primitive types (Integer).</p>