This is the sort of challenge that bytes
Jelly, 8 programs

Ṣ                   Built-in sort.
¹Þ                  Sort-by the identity function.
Ụị                  Sort indices by values, then index into list.
Œ!Ṃ                 Smallest permutation.
7778Ọv              Eval Unicode 7778 (Ṣ).
ẊI&gt;@-.S$$¿          Bogosort.
&lt;;0œṡ0⁸ṁjµ/         Insertion sort.
AṀ‘¶+Ç©ṬT_©®³ċÐ€®x' A terrifying hack.


The last program is really annoying…

AṀ‘¶+Ç©               Add ® = abs(max(L)) + 1 to the entire list.
                      Now it’s offset to be entirely positive.
       Ṭ              Create a binary array with 1s at these indices.
        T             Find the indices of 1s in this array.
                      The result is sorted, but offset wrong, and lacks duplicates.
         _©®          Subtract the offset, saving this list to ®.
                      Now restore the duplicates:
            ³ċÐ€      Count occurences in the original list.
                ®x'   Repeat the elements of ® that many times.


If I can remove the œṡ from &lt;;0œṡ0⁸ṁjµ/, there’s also this weird one: ²SNr²ZFœ&amp;. Help is appreciated.