# Robert SedgewickPrinceton University | PU · Department of Computer Science

Robert Sedgewick

## About

141

Publications

16,538

Reads

**How we measure 'reads'**

A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more

9,818

Citations

## Publications

Publications (141)

In 2011, shortly after his untimely passing, several colleagues and I wrote an obituary for Philippe Flajolet [5] that includes the following: He was the leading figure in the development of the international ‘AofA’ community that is devoted to research on probabilistic, combinatorial, and asymptotic methods in the analysis of algorithms. The colle...

The aim of ANALCO is to provide a forum for original research in the analysis of algorithms and associated combinatorial structures. The papers study the properties of fundamental combinatorial structures that arise in practical computational applications (such as trees, permutations, strings, tries and graphs) and address the precise analysis of a...

I have spent the last fifteen years of my life leading an incredible team. Our quest (which we did not even realize in the beginning) was to revolutionize the way computer programming is taught. Current versions of the Alice system (Alice v2.0, and Caitlin ...

The Dagstuhl Seminar on Data Structures in 2006 reported on ongoing research on data structures, including randomized, cache-oblivious and succinct data structures. There was some shift of interest away from purely theoretical issues towards scientific studies that are directly relevant to practical applications. The participants were asked to thin...

From 26.02.06 to 03.03.06, the Dagstuhl Seminar 06091 ``Data Structures'' was held in the International Conference and Research Center (IBFI), Schloss Dagstuhl. During the seminar, several participants presented their current research, and ongoing work and open problems were discussed. Abstracts of the presentations given during the seminar as well...

This booklet develops in about 240 pages the basics of asymptotic enumeration through an approach that revolves around generating functions and complex analysis. Major properties of generating functions that are of interest here are singularities. The text presents the core of the theory with two chapters on complex analytic methods focusing on rat...

Search tree data structures like van Emde Boas trees are a theoretically attractive alternative to comparison based search trees because they have better asymptotic performance for small integer keys and large inputs. This paper studies their practicability using 32 bit keys as an example. While direct implementations of van Emde Boas trees cannot...

From 22.02. to 27.02.2004, Dagstuhl Seminar "Data Structures" was held in the International Conference and Research Center (IBFI), Schloss Dagstuhl. During the seminar, several participants presented their current research, and ongoing work and open problems were discussed. Abstracts of the presentations given during the seminar are put together in...

This booklet develops in nearly 200 pages the basics of combinatorial enumeration through an approach that revolves around generating functions. The major objects of interest here are words, trees, graphs, and permutations, which surface recurrently in all areas of discrete mathematics. The text presents the core of the theory with chapters on unla...

: This report is part of a series whose aim is to present in a synthetic way the major methods and models in analytic combinatorics. Here, we detail the case of rational and algebraic functions and discuss systematically closure properties, the location of singularities, and consequences regarding combinatorial enumeration. The theory is applied to...

. We present simple, practical and efficient data structures for the fundamental problem of maintaining a resizable one-dimensional array, A[l::l + n Gamma 1], of fixed-size elements, as elements are added to or removed from one or both ends. Our structures also support access to the element in position i. All operations are performed in constant t...

this paper is to study the number of reconstructions of a random DNA string, under an appropriate probabilistic model. For a given string, the number of reconstructions is determined by the pattern of repeated substrings; in an appropriate limit substrings will occur at most twice, so the pattern of repeats is given by a pairing: a string of length...

. This report is part of a series whose aim is to present in a synthetic way the major methods of "analytic combinatorics" needed in the average--case analysis of algorithms. It reviews the use of Mellin-Perron formulae and of Mellin transforms in this context. Applications include: divideand -conquer recurrences, maxima finding, mergesort, digital...

. This report is part of a series whose aim is to present in a synthetic way the major methods of "analytic combinatorics" needed in the average--case analysis of algorithms. It develops a general approach to the distributional analysis of parameters of elementary combinatorial structures like strings, trees, graphs, permutations, and so on. The me...

Introduction to the Analysis of Algorithms. Addison-Wesley Publishing Company, 1996. [132] Robert Sedgewick and Philippe Flajolet. Introduction `a l'analyse des algorithmes. International Thomson Publishing, France, 1996. 492 pages. A translation of the original English version (ISBN 2-84180-957-9). [133] Ed Coffman, Philippe Flajolet, and Micha Ho...

We present theoretical algorithms for sorting and searching multikey data, and derive from them practical C implementations for applications in which keys are charac- ter strings. The sorting algorithm blends Quicksort and radix sort; it is competitive with the best known C sort codes. The searching algorithm blends tries and binary search trees; i...

This report is part of a projected series whose aim is to present in a synthetic way the major methods and models in the average--case analysis of algorithms. The following items are to be treated in the series. First, there will be a collection of reports on Methods:

This report is part of a series whose aim is to present in a synthetic way the major methods of "analytic combinatorics" needed in the average--case analysis of algorithms. The series should comprise the following chapters; 1. Symbolic Enumeration and Ordinary Generating Functions; 2. Labelled Structures and Exponential Generating Functions; 3. Par...

High order differences of simple number sequences may be analysed asymptotically by means of integral representations, residue calculus, and contour integration. This technique, akin to Mellin transform asymptotics, is put in perspective and illustrated by means of several examples related to combinatorics and the analysis of algorithms like digita...

Mergesort is one of the oldest and most venerable sorting algorithms and exists in many different flavors. In this short note we present yet another mergesort variant, queue-mergesort. We show that, like top-down mergesort but unlike bottom-up mergesort, this new variant performs an optimal number of comparisons in the worst case.

Heapsort is a fundamental algorithm whose precise performance characteristics have proven difficult to analyze. It is easy to show that the number of keys moved during the algorithm when sorting a random file of N distinct elements is N lg N + O(N) in the worst case, and it has long been conjectured that the average case performance is the same. No...

Benchmarks have been used to test everything from the speed of a processor to the access time of a memory system. The computing community relies on them heavily to assess how fast a given hardware or software system operates. They are of fundamental importance in everyday computing. However, up until now, the study of the art of designing a good be...

This report is part of a projected series whose aim is to present in a synthetic way the major methods and models in the average-case analysis of algorithms. The present work (counting and generating functions) introduces a symbolic approach through formal specifications to the analysis of basic combinatorial structures. It consists of three chapte...

We explore techniques based on the notion of a skip list to guarantee logarithmic search, insert and delete costs. The basic idea is to insist that between any pair of elements above a given height are a small number of elements of precisely that height. The desired behaviour can be achieved by either using some extra space for pointers, or by addi...

It is proved that the running time of Shellsort using an increment sequence given by Sedgewick is which matches the known upper bound. Extending this proof technique to various increment sequences leads to lower bounds that in general always match the known upper bounds. This suggests that Shellsort runs in ω (N1+ϵ/ for increment sequences of pract...

We review previous results on the Frobenius problem, their use in bounding shellsort’s running time and present simpler proofs of the bounds obtained by Incerpi and the second author. Our proofs use Johnson’s classic result on the Frobenius problem. Although our results do not improve the bounds, they extend the bound to cover more increment sequen...

Shellsort is a simple classic algorithm that runs competitively on both mid-sized and nearly sorted files. It uses an increment sequence, the choice of which can drastically affect the algorithm's running time. Due to the results of Pratt, the running time of Shellsort was long thought to be Θ(N
3/2) for increment sequences that are "almost geometr...

Il est montre que l'algorithme de tri «Shaker sort» est quadratique dans le pire cas si l'on considere les increments suggeres par Incerpi et Sedgewick. De plus, il est signale que des variations simples de ces sequences d'increments ne conduisent pas a des ameliorations significatives du resultat

This paper is concerned with a simple, rather intuitive preprocessing step that is likely to improve the average-case performance of any convex hull algorithm. For n points randomly distributed in the unit square, we show that a simple linear pass through the points can eliminate all but &Ogr;(√n) of the points by showing that a simple superset of...

Disponible dans les fichiers attachés à ce document

Recently, Fredman and Tarjan invented a new, especially efficient form of heap (priority queue) called theFibonacci heap. Although theoretically efficient, Fibonacci heaps are complicated to implement and not as fast in practice as other kinds
of heaps. In this paper we describe a new form of heap, called thepairing heap, intended to be competitive...

Several algorithms have been proposed which build search trees using digital properties of the search keys. A general approach to the study of the average case performance of such algorithms is discussed, with particular attention to the analysis of the digital search tree structures of Coffman and Eve. Specifically, the method leads to the solutio...

A direct relationship between Shellsort and the classical “problem of Frobenius” from additive number theory is used to derive a sequence of O(log N) increments for Shellsort for which the worst case running time is . The previous best-known upper bound for sequences of O(log N) increments was , which was shown by Pratt to be tight for a large fami...

We analyze a simple method for finding shortest paths inEuclidean graphs (where vertices are points in a Euclidean space and edge weights are Euclidean distances between points). For many graph
models, the average running time of the algorithm to find the shortest path between a specified pair of vertices in a graph
withV vertices andE edges is sho...

The running time of Shellsort, with the number of passes restricted to O(log N), was thought for some time to be , due to general results of Pratt. Sedgewick recently gave an bound, but extensions of his method to provide better bounds seem to require new results on a classical problem in number theory. In this paper, we use a different approach to...

The Brown University Algorithm Simulator and Animator, Balsa, an integrated software environment designed to 'animate' programs in introduced. The role of Balsa users is considered as algorithm designers, animators, and scriptwriters, that are using Balsa as the fundamental communications medium in teaching a course on algorithms and data structure...

Résumé disponible dans les fichiers attachés

A software environment is described which provides facilities at a variety of levels for “animating” algorithms: exposing properties of programs by displaying multiple dynamic views of the program and associated data structures. The system is operational on a network of graphics-based, personal workstations and has been used successfully in several...

An instructional computing laboratory, consisting of about 60 high-performance, graphics-based personal workstations connected by a high-bandwidth, resource-sharing local area network, has recently become operational at Brown University. This hardware, coupled with an innovative courseware/software environment, is being used in the classroom in an...

An instructional computing laboratory, consisting of about 60 high-performance, graphics-based personal workstations connected by a high-bandwidth, resource-sharing local area network, has recently become operational at Brown University. This hardware, coupled with an innovative courseware/software environment, is being used in the classroom in an...

The running time of Shellsort, with the number of passes restricted to O(log N), was thought for some time to be Θ(N3/2), due to general results of Pratt. Sedgewick recently gave an O(N4/3) bound, but extensions of his method to provide better bounds seem to require new results on a classical problem in number theory. In this paper, we use a differ...

Given a function f over a finite domain D and an arbitrary starting point x, the sequence $f^0 (x),f^1 (x),f^2 (x), \cdots $ is ultimately periodic. Such sequences are typically the output of random number generators. The cycle problem is to determine the first repeated element $f^n (x)$ in the sequence. Previous algorithms for this problem have re...

ALI is a procedural language to specify VLSI layouts. It allows the designer to describe layouts without reference to the sizes and positions of the layout elements or to the distances between them. Among the interesting characteristics of ALI are that it does not need design rule checking, is easy to extend, facilitates the division of labor and p...

Several new results which contribute to the understanding of parallel merging networks are presented. First, a simple new explanation of the operation of Batcher's merging networks is offered. This view leads to the derivation of a modified version of Batcher's odd-even (m, n) network which has delay time [log(m+n)]. This is the same delay time as...

Two components of a VLSI design environment being built at Princeton are described. The general theme of this effort is to make the design of VLSI circuits as similar to programming as possible. A conscious attempt is being made to apply experience in the design of large software systems to the creation of an appropriate environment for VLSI circui...

Increased use of Very Large Scale Integration (VLSI) for the fabrication of digital circuits has led to increased interest in complexity results on the inherent VLSI difficulty of various problems. Lower bounds have been obtained for problems such as integer multiplication [1,2], matrix multiplication [7], sorting [8], and discrete Fourier transfor...

This paper is a tutorial description of three important methods for sorting with a computer: heapsort, replacement selection, and polyphase merging. The first is appropriate when the file to be sorted fits entirely into the memory of the computer, and the others, in combination, are used for very large files.

Given a function f over a finite domain D and an arbitrary starting point x, the sequence x,f(x),f(f(x)),... is ultimately periodic. Such sequences typically are used for constructing random number generators. The cycle problem is to determine the first repeated element fn(x) in the sequence. Previous algorithms for this problem have required 3n op...

In this paper we present a uniform framework for the implementation and study of balanced tree algorithms. We show how to imbed in this framework the best known balanced tree techniques and then use the framework to develop new algorithms which perform the update and rebalancing in one pass, on the way down towards a leaf. We conclude with a study...

This paper is a practical study of how to implement the Quicksort sorting algorithm and its best variants on real computers, including how to apply various code optimization techniques. A detailed implementation combining the most effective improvements to Quicksort is given, along with a discussion of how to implement it in assembly language. Anal...

A complete analysis is given of the number of exchanges used by the well-known Batcher’s odd-even merging (and sorting) networks. Batcher’s method involves a fixed sequence of “compare-exchange” operations, so the number of comparisons required is easy to compute, but the problem of determining how many comparisons result in exchanges has not been...

The Quicksort sorting algorithm and its best variants are presented and analyzed. Results are derived which make it possible to obtain exact formulas describing the total expected running time of particular implementations on real computers of Quicksort and an improvement called the median-of-three modification. Detailed analysis of the effect of a...

This paper considers the problem of implementing and analyzing a Quicksort program when equal keys are likely to be present in the file to be sorted. Upper and lower bounds are derived on the average number of comparisons needed by any Quicksort program when equal keys are present. It is shown that, of the three strategies which have been suggested...