title: Can sorting Algorithms destroy pre-existing element order?
body: <p>I was wondering about an Issue I have.</p>
  
  <p>My Situations looks as following:</p>
  
  <p>I have a set of Data and 2 comparators.
  You can assume the first comparator sorts items alphabetically and the other one sorts items based on some other Criteria (f.e. custom level value).</p>
  
  <p>So given following data:</p>
  
  <pre><code>1: b / lvl 1
  2: c / lvl 1
  3: a / lvl 1
  4: d / lvl 2
  </code></pre>
  
  <p>after first sort it should look like this:</p>
  
  <pre><code>a, b, c, d
  </code></pre>
  
  <p>and after the second one:</p>
  
  <pre><code>d, a, b, c
  </code></pre>
  
  <p>So far so good.
  I know that it is possible to destroy the first sorting (f.e. by using Bogosort).
  So that could be the output of the second sort:</p>
  
  <pre><code>d, b, c, a
  </code></pre>
  
  <p>But are there any "proper" sorting algorithms which could do that too?</p>