QuickSort — Benchmarking of Implementations

Carrano.java         Carrano's implementation of partition and quickSort, slightly altered for benchmarking purposes
Naps.java              Implementation by Thomas Naps (with parition based on single moves, not swaps — mentioned in Hoare[1962])
Koffman.java         Implementation from Elliot Koffman
Hoare.java             Tony Hoare's original algorithm as published in CACM (July 1961), translated to Java
MergeSort.java      For comparison, a MergeSort implementation by Elliot Koffman
BenchQuick.java   Main program to exercise all five above implementations plus Arrays.sort(), generating a spreadsheet file (CSV format)

Traces.txt              Traces of Naps.quickSort comparable with Powerpoint traces of Carrano.quickSort

BenchQuick.xls      Result of a benchmark run (run on wyoming.ewu.edu, a 2 GHz Linux computer)
Compare1.gif         Average number of compareTo calls (range 2 through 128)
Compare2.gif         Average number of compareTo calls (range 32 through 4096)
Time1.gif                Average time (microseconds) (range 2 through 128)
Time2.gif                Average time (microseconds) (range 32 through 4096)

BenchQuick_1.html  Slide set with about four figures graphical results

CkPivot.html           Examination of some "void choosePivot()" strategies

p321-hoare.pdf        Local copy of Hoare's original publication in CACM (July 1961)
Hoare_Cmpr_J.pdf  Local copy of Hoare's original discussion of the algorithm in the Computer Journal of 1962.
Hoare's home page   As a senior researcher with Microsoft Research in Cambridge (England) — dated 11 October 1999.

Note:  as of 26 May 2005, http://research.microsoft.com/aboutmsr/visitmsr/cambridge/ still lists him as a member of the Programming Principles and Tools group.