99 research outputs found

    Why Is Dual-Pivot Quicksort Fast?

    Get PDF
    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

    Full text link
    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

    Get PDF
    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

    Full text link
    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

    Weak heaps and friends:recent developments

    Get PDF
    corecore