The fragment quoted by you first of all speaks about problems at sorting of lines. If an array of strings during quicksort is stored as an array as pointers (which is basically the only simple way), then after the first pass of quicksort it is possible that pointers stored in adjacent positions in the array indicate memory located far from each other, even if the original array of strings was allocated in sequential memory. It seems plausible that sorting strings can be considered as a special problem, and specialized algorithms for it can be more efficient in the cache.
If instead you are sorting an array of, say, integers, then you are actually comparing and exchanging data in the array during quick sort, and therefore, when you access the nearest locations in the array, you will get the benefits of the cache. In this case, my understanding is the same as what you found on Wikipedia and elsewhere, namely, quicksort is quite efficient in the cache. This is mainly due to the fact that each quicksort pass processes its part of the array very locally.
source share