English
Related papers

Related papers: On the Worst-Case Complexity of TimSort

200 papers

The analysis of algorithms mostly relies on counting classic elementary operations like additions, multiplications, comparisons, swaps etc. This approach is often sufficient to quantify an algorithm's efficiency. In some cases, however,…

Data Structures and Algorithms · Computer Science 2015-01-20 Conrado Martínez , Markus E. Nebel , Sebastian Wild

We present an algorithm to decide the primality of Proth numbers, N=2^e t+1, without assuming any unproven hypothesis. The expected running time and the worst case running time of the algorithm are O ((t log t + log N)log N) and O ((t log t…

Number Theory · Mathematics 2011-07-05 Tsz-Wo Sze

In 1937, biologists Sturtevant and Tan posed a computational question: transform a chromosome represented by a permutation of genes, into a second permutation, using a minimum-length sequence of reversals, each inverting the order of a…

Data Structures and Algorithms · Computer Science 2024-04-01 Krister M. Swenson

Recently, Armstrong, Guzm\'an, and Sing Long (2021), presented an optimal $O(n^2)$ time algorithm for strict circular seriation (called also the recognition of strict quasi-circular Robinson spaces). In this paper, we give a very simple…

Discrete Mathematics · Computer Science 2023-05-23 Mikhael Carmona , Victor Chepoi , Guyslain Naves , Pascal Préa

In-place associative integer sorting technique was proposed for integer lists which requires only constant amount of additional memory replacing bucket sort, distribution counting sort and address calculation sort family of algorithms.…

Data Structures and Algorithms · Computer Science 2012-09-24 A. Emre Cetin

A simple method to produce a random order type is to take the order type of a random point set. We conjecture that many probability distributions on order types defined in this way are heavily concentrated and therefore sample inefficiently…

Computational Geometry · Computer Science 2020-06-05 Olivier Devillers , Philippe Duchon , Marc Glisse , Xavier Goaoc

We investigate the complexity of sorting in the model of sequential quantum circuits. While it is known that in general a quantum algorithm based on comparisons alone cannot outperform classical sorting algorithms by more than a constant…

Quantum Physics · Physics 2007-05-23 Hartmut Klauck

We revisit the selection problem, namely that of computing the $i$th order statistic of $n$ given elements, in particular the classic deterministic algorithm by grouping and partition due to Blum, Floyd, Pratt, Rivest, and Tarjan (1973).…

Data Structures and Algorithms · Computer Science 2019-04-09 Ke Chen , Adrian Dumitrescu

This paper presents PyJobShop, an open-source Python library for solving scheduling problems with constraint programming. PyJobShop provides an easy-to-use modeling interface that supports a wide variety of scheduling problems, including…

Optimization and Control · Mathematics 2025-02-20 Leon Lan , Joost Berkhout

We present a stable mergesort variant, Multiway Powersort, that exploits existing runs and finds nearly-optimal merging orders for k-way merges with negligible overhead. This builds on Powersort (Munro & Wild, ESA2018), which has recently…

Data Structures and Algorithms · Computer Science 2023-01-18 William Cawley Gelling , Markus E. Nebel , Benjamin Smith , Sebastian Wild

Semisort is a fundamental algorithmic primitive widely used in the design and analysis of efficient parallel algorithms. It takes input as an array of records and a function extracting a \emph{key} per record, and reorders them so that…

Data Structures and Algorithms · Computer Science 2023-04-21 Xiaojun Dong , Yunshu Wu , Zhongqi Wang , Laxman Dhulipala , Yan Gu , Yihan Sun

A saddlepoint of an $n \times n$ matrix $A$ is an entry of $A$ that is a maximum in its row and a minimum in its column. Knuth (1968) gave several different algorithms for finding a saddlepoint. The worst-case running time of these…

Data Structures and Algorithms · Computer Science 2023-10-26 Justin Dallant , Frederik Haagensen , Riko Jacob , László Kozma , Sebastian Wild

We study the Multiple Cluster Scheduling problem and the Multiple Strip Packing problem. For both problems, there is no algorithm with approximation ratio better than $2$ unless $P = NP$. In this paper, we present an algorithm with…

Data Structures and Algorithms · Computer Science 2019-02-12 Klaus Jansen , Malin Rau

The {\it matrix-chain multiplication} problem is a classic problem that is widely taught to illustrate dynamic programming. The textbook solution runs in $\theta(n^3)$ time. However, there is a complex $O(n \log n)$-time method \cite{HU82},…

Discrete Mathematics · Computer Science 2021-04-06 Thong Le , Dan Gusfield

We introduce and analyse a new, extremely simple, randomised sorting algorithm: - choose a pair of indices $\{i, j\}$ according to some distribution $q$; - sort the elements in positions $i$ and $j$ of the array in ascending order. Choosing…

Data Structures and Algorithms · Computer Science 2025-02-10 Sam Olesker-Taylor

Many production-grade algorithms benefit from combining an asymptotically efficient algorithm for solving big problem instances, by splitting them into smaller ones, and an asymptotically inefficient algorithm with a very small…

Data Structures and Algorithms · Computer Science 2017-04-14 Margarita Markina , Maxim Buzdalov

It has recently been shown that starting with a classical query algorithm (decision tree) and a guessing algorithm that tries to predict the query answers, we can design a quantum algorithm with query complexity $O(\sqrt{GT})$ where $T$ is…

Quantum Physics · Physics 2022-10-18 Salman Beigi , Leila Taghavi , Artin Tajdini

We study the problem of computing a longest increasing subsequence in a sequence $S$ of $n$ distinct elements in the presence of persistent comparison errors. In this model, every comparison between two elements can return the wrong result…

Data Structures and Algorithms · Computer Science 2018-08-13 Barbara Geissmann

Compilers for statically typed functional programming languages are notorious for generating confusing type error messages. When the compiler detects a type error, it typically reports the program location where the type checking failed as…

Programming Languages · Computer Science 2015-08-28 Zvonimir Pavlinovic , Tim King , Thomas Wies

The theory of divide-and-conquer parallelization has been well-studied in the past, providing a solid basis upon which to explore different approaches to the parallelization of merge sort in Python. Python's simplicity and extensive…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-11-30 Alexandra Yang