“…Consequently, a huge amount of research on sorting has been done. In particular, algorithm engineering has studied how to make sorting practically fast in presence of complex features of modern hardware like multi-core (e.g., [9,11,28,35,37,46,51,57,61,61,63,65,66,70,70]) instruction parallelism (e.g., [17,37,61,64]), branch prediction (e.g., [9,21,43,64,67,76]), caches (e.g., [11,14,26,46,64]), or virtual memory (e.g., [42,62,71]). In contrast, the sorting algorithms used in the standard libraries of programming languages like Java or C++ still use variants of quicksort -an algorithm that is more than 50 years old [36].…”