99 research outputs found
Why Is Dual-Pivot Quicksort Fast?
I discuss the new dual-pivot Quicksort that is nowadays used to sort arrays
of primitive types in Java. I sketch theoretical analyses of this algorithm
that offer a possible, and in my opinion plausible, explanation why (a)
dual-pivot Quicksort is faster than the previously used (classic) Quicksort and
(b) why this improvement was not already found much earlier.Comment: extended abstract for Theorietage 2015
(https://www.uni-trier.de/index.php?id=55089) (v2 fixes a small bug in the
pseudocode
Even faster sorting of (not only) integers
In this paper we introduce RADULS2, the fastest parallel sorter based on
radix algorithm. It is optimized to process huge amounts of data making use of
modern multicore CPUs. The main novelties include: extremely optimized
algorithm for handling tiny arrays (up to about a hundred of records) that
could appear even billions times as subproblems to handle and improved
processing of larger subarrays with better use of non-temporal memory stores
Data sorting
Ovaj rad prikazuje jedno od rješenja problema sortiranja podataka u jednodimenzionalnom polju (nizu) elemenata. U praksi se često pojavljuje potreba za sortiranjem podataka te se zbog toga traži što efikasniji i brži algoritam. U ovom radu detaljno je prikazan
jedan od najboljih - merge-sort algoritam. Napravljene su i praktične izvedbe algoritama za sortiranje koje su testirane na različitim skupovima podataka.In this paper one solution of the problem of sorting
an one-dimensional vector (array) of data is shown in this paper. A
need for data sorting very often arises in the practice and therefore we are constantly searching for more efficient and faster sorting
algorithms. One of the best sorting algorithms -merge-sort is
shown in this paper in detail. We made two of sorting
algorithms and tested them on different types of data
A Novel Hybrid Quicksort Algorithm Vectorized using AVX-512 on Intel Skylake
The modern CPU's design, which is composed of hierarchical memory and
SIMD/vectorization capability, governs the potential for algorithms to be
transformed into efficient implementations. The release of the AVX-512 changed
things radically, and motivated us to search for an efficient sorting algorithm
that can take advantage of it. In this paper, we describe the best strategy we
have found, which is a novel two parts hybrid sort, based on the well-known
Quicksort algorithm. The central partitioning operation is performed by a new
algorithm, and small partitions/arrays are sorted using a branch-free
Bitonic-based sort. This study is also an illustration of how classical
algorithms can be adapted and enhanced by the AVX-512 extension. We evaluate
the performance of our approach on a modern Intel Xeon Skylake and assess the
different layers of our implementation by sorting/partitioning integers, double
floating-point numbers, and key/value pairs of integers. Our results
demonstrate that our approach is faster than two libraries of reference: the
GNU \emph{C++} sort algorithm by a speedup factor of 4, and the Intel IPP
library by a speedup factor of 1.4.Comment: 8 pages, research pape
- …