DeepAI AI Chat
Log In Sign Up

Sesquickselect: One and a half pivots for cache-efficient selection

by   Conrado Martínez, et al.

Because of unmatched improvements in CPU performance, memory transfers have become a bottleneck of program execution. As discovered in recent years, this also affects sorting in internal memory. Since partitioning around several pivots reduces overall memory transfers, we have seen renewed interest in multiway Quicksort. Here, we analyze in how far multiway partitioning helps in Quickselect. We compute the expected number of comparisons and scanned elements (approximating memory transfers) for a generic class of (non-adaptive) multiway Quickselect and show that three or more pivots are not helpful, but two pivots are. Moreover, we consider "adaptive" variants which choose partitioning and pivot-selection methods in each recursive step from a finite set of alternatives depending on the current (relative) sought rank. We show that "Sesquickselect", a new Quickselect variant that uses either one or two pivots, makes better use of small samples w.r.t. memory transfers than other Quickselect variants.


page 1

page 2

page 3

page 4


Leyenda: An Adaptive, Hybrid Sorting Algorithm for Large Scale Data with Limited Memory

Sorting is the one of the fundamental tasks of modern data management sy...

A Moveable Beast: Partitioning Data and Compute for Computational Storage

Over the years, hardware trends have introduced various heterogeneous co...

Simple and Fast BlockQuicksort using Lomuto's Partitioning Scheme

This paper presents simple variants of the BlockQuicksort algorithm desc...

Enhancing Application Performance by Memory Partitioning in Android Platforms

This paper suggests a new memory partitioning scheme that can enhance pr...

Rank-one partitioning: formalization, illustrative examples, and a new cluster enhancing strategy

In this paper, we introduce and formalize a rank-one partitioning learni...

Assessing Impact of Data Partitioning for Approximate Memory in C/C++ Code

Approximate memory is a technique to mitigate the performance gap betwee...