In-place "clumping-by-color" algorithm faster than sorting by color?
If I understand correctly, you're asking if preserving the locations of grouped values will give a speedup over reordering them, so for instance {2,2,2,1,1,1} would be left in place instead of rewriting the array as {1,1,1,2,2,2}.  I would say no, because comparing-and-swapping is not slower than simply comparing in practice, and you probably need the same number of compares regardless.  

I've done tests of different Dutch National Flag algorithms and found no variation in times between versions that do a lot of swaps vs. ones which do little (there was a period when that number was important, and a number of papers have been published on it).  They all do the same number of comparisons, but the mechanics of moving elements into cache, etc. seems to make swaps almost free.  

As greybeard notes, you're probably using the wrong Quicksort.  Try the one described here:  https://www.cs.princeton.edu/~rs/talks/QuicksortIsOptimal.pdf .  2-way Quicksort is quadratic with duplicate values, for instance n duplicates will take o(n^2) since it will place all remaining values on one side of the pivot during each recursion.