Empirical study of the expected running time for shellsort
The Computer Journal - Special issue on term rewriting
Introduction to parallel algorithms and architectures: array, trees, hypercubes
Introduction to parallel algorithms and architectures: array, trees, hypercubes
Introduction to parallel computing: design and analysis of algorithms
Introduction to parallel computing: design and analysis of algorithms
Balanced allocations (extended abstract)
STOC '94 Proceedings of the twenty-sixth annual ACM symposium on Theory of computing
Random duplicated assignment: an alternative to striping in video servers
MULTIMEDIA '97 Proceedings of the fifth ACM international conference on Multimedia
Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator
ACM Transactions on Modeling and Computer Simulation (TOMACS) - Special issue on uniform random number generation
Combinatorial algorithms test sets CATS: the ACM/EATCS platform for experimental research
Proceedings of the tenth annual ACM-SIAM symposium on Discrete algorithms
Balanced allocations: the heavily loaded case
STOC '00 Proceedings of the thirty-second annual ACM symposium on Theory of computing
Fast concurrent access to parallel disks
SODA '00 Proceedings of the eleventh annual ACM-SIAM symposium on Discrete algorithms
A high-speed sorting procedure
Communications of the ACM
Average-Case Complexity of Shellsort
ICAL '99 Proceedings of the 26th International Colloquium on Automata, Languages and Programming
Analysis of Shellsort and Related Algorithms
ESA '96 Proceedings of the Fourth Annual European Symposium on Algorithms
Towards Optimal Locality in Mesh-Indexings
FCT '97 Proceedings of the 11th International Symposium on Fundamentals of Computation Theory
How to Find Big-Oh in Your Data Set (and How Not to)
IDA '97 Proceedings of the Second International Symposium on Advances in Intelligent Data Analysis, Reasoning about Data
How Asymmetry Helps Load Balancing
FOCS '99 Proceedings of the 40th Annual Symposium on Foundations of Computer Science
Scheduling multithreaded computations by work stealing
SFCS '94 Proceedings of the 35th Annual Symposium on Foundations of Computer Science
Randomized Shellsort: a simple oblivious sorting algorithm
SODA '10 Proceedings of the twenty-first annual ACM-SIAM symposium on Discrete Algorithms
Randomized Shellsort: A Simple Data-Oblivious Sorting Algorithm
Journal of the ACM (JACM)
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Hi-index | 0.00 |
In the analysis of algorithms we are usually interested in obtaining closed form expressions for their complexity, or at least asymptotic expressions in O(ċ)-notation. Unfortunately, there are fundamental reasons why we cannot obtain such expressions from experiments. This paper explains how we can at least come close to this goal using the scientific method. Besides the traditional role of experiments as a source of preliminary ideas for theoretical analysis, experiments can test falsifiable hypotheses obtained by incomplete theoretical analysis. Asymptotic behavior can also be deduced from stronger hypotheses which have been induced from experiments. As long as a complete mathematical analysis is impossible, well tested hypotheses may have to take their place. Several examples for probabilistic problems are given where the average complexity can be well approximated experimentally so that the support for the hypotheses is quite strong. Randomized Shellsort has performance close to O(n log n); random polling dynamic load balancing between P processors achieves full load sharing in log2 P + O(log log P) steps; randomized writing to D independent disks using a shared buffer size W achieves average efficiency at least 1 - D/(2W).