>>13799615selection sort and OPs retard sort are O(n^2), but the retard sort is probably slower in practice because it performs extra memory writes randomly around the array which is no good for cache performance.
merge sort is Theta(nlog n) no matter what, which is why its the "fastest"
bubble sort is actually interesting because although it is O(n^2), if usually only O(1) passes over the data are needed before it is sorted, it actually takes O(n) time, making it faster than merge sort. surprisingly, it is actually used in a niche graphics programming application for this reason.