Engineering faster sorters for small sets of items

  title={Engineering faster sorters for small sets of items},
  author={Jasper Marianczuk},
  journal={Software: Practice and Experience},
  pages={1004 - 965}
Sorting a set of items is a task that can be useful by itself or as a building block for more complex operations. That is why a lot of effort has been put into finding sorting algorithms that sort large sets as efficiently as possible. But the more sophisticated and complex the algorithms become, the less efficient they are for small sets of items due to large constant factors. A relatively simple sorting algorithm that is often used as a base case sorter is insertion sort, because it has small… Expand
A novel real-time design for fighting game AI
The experimental results show that this algorithmic approach towards real-time fighting games via the fighting game AI challenge would provide an excellent AI outperforming pure Monte-Carlo tree search and classic algorithms such as evolutionary algorithms or deep reinforcement learning. Expand
Engineering In-place (Shared-memory) Sorting Algorithms
This work presents sorting algorithms that represent the fastest known techniques for a wide range of input sizes, input distributions, data types, and machines, and develops a blockwise approach to in-place data distribution that is provably cache-efficient and parallelize this approach taking dynamic load balancing and memory locality into account. Expand


Optimizing sorting algorithms by using sorting networks
The theory of sorting networks can be applied to synthesize optimized general-purpose sorting libraries and using code synthesized from these efficient sorting networks as the base case for Quicksort libraries results in significant real-world speed-ups. Expand
Introspective Sorting and Selection Algorithms
This paper describes a simple solution to this dilemma: limit the depth of partitioning, and for subproblems that exceed the limit switch to another algorithm with a better worst‐case bound. Expand
Scalable String and Suffix Sorting: Algorithms, Techniques, and Tools
This dissertation focuses on two fundamental sorting problems: string sorting and suffix sorting, and proposes both multiway distribution-based with string sample sort and multiway merge-based string sorting with LCP-aware merge and mergesort, and engineer and parallelize both approaches. Expand
A Sorting Problem
Two aims of this paper are to find the least number of comparisons needed for sorting n items within the original locations (within the "source file"), 2 and to provide an algorithm employing the leastNumber of comparisons for obtaining a sorted file. Expand
A comparison of sorting algorithms for the connection machine CM-2
A fast sorting algorithm for the Connection Machine Supercomputer model CM-2 is developed and it is shown that any U(lg n)-depth family of sorting networks can be used to sort n numbers in U( lg n) time in the bounded-degree fixed interconnection network domain. Expand
Robust Massively Parallel Sorting
This work investigates distributed memory parallel sorting algorithms that scale to the largest available machines and are robust with respect to input size and distribution of the input elements and designs a new variant of quicksort with fast high-quality pivot selection. Expand
Super Scalar Sample Sort
The main algorithmic insight is that element comparisons can be decoupled from expensive conditional branching using predicated instructions, which facilitates optimizations like loop unrolling and software pipelining. Expand
An empirical study of minimal storage sorting
Given a memory area of size A and a record of size S, then the number of records that can be sequenced in memory using the Replacement-Selection technique is A/(S+i) , as compared to A/S for other techniques. Expand
Using SIMD registers and instructions to enable instruction-level parallelism in sorting algorithms
This paper uses vector registers and instructions to manipulate data stored in such registers to improve the performance of the tail of recursive sorting algorithms and reduces the time spent by DTSL up to 22% for moderately-sized arrays, with greater relative reductions for small arrays. Expand
Samplesort: A Sampling Approach to Minimal Storage Tree Sorting
A procedure is proposed which is a generalization of minimal storage tree sorting and which has the following three properties: there is a significant improvement in the expected number of comparisons required to sort the input sequence, the procedure is statistically insensitive to bias in theinput sequence, and the expected numbers of comparisons approaches the information-theoretic lower bound on the number of compared required. Expand