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

10/29/2018
by   Conrado Martínez, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/17/2019

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...
research
12/22/2022

A Moveable Beast: Partitioning Data and Compute for Computational Storage

Over the years, hardware trends have introduced various heterogeneous co...
research
10/29/2018

Simple and Fast BlockQuicksort using Lomuto's Partitioning Scheme

This paper presents simple variants of the BlockQuicksort algorithm desc...
research
01/26/2021

Enhancing Application Performance by Memory Partitioning in Android Platforms

This paper suggests a new memory partitioning scheme that can enhance pr...
research
11/03/2020

Balanced Partitioning of Several Cache-Oblivious Algorithms

Frigo et al. proposed an ideal cache model and a recursive technique to ...
research
09/01/2020

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

In this paper, we introduce and formalize a rank-one partitioning learni...
research
04/01/2020

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

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

Please sign up or login with your details

Forgot password? Click here to reset