arXiv · 1910.10406
Analyzing Trade-offs in Reversible Linear and Binary Search Algorithms
Abstract
Reversible algorithms are algorithms in which each step represents a partial injective function; they are useful for performance optimization in reversible systems. In this study, using Janus, a reversible imperative high-level programming language, we have developed reversible linear and binary search algorithms. We have analyzed the non-trivial space-time trade-offs between them, focusing on the memory usage disregarding original inputs and outputs, the size of the output garbage disregarding the original inputs, and the maximum amount of traversal of the input. The programs in this study can easily be adapted to other reversible programming languages. Our analysis reveals that the change of the output data and/or the data structure affects the design of efficient reversible algorithms. For example, the number of input data traversals depends on whether the search has succeeded or failed, while it expectedly never changes in corresponding irreversible linear and binary searches. Our observations indicate the importance of the selection of data structures and what is regarded as the output with the aim of the reversible algorithm design.
Explore related subjects
Keep this discovery
Hiroki Masuda, Tetsuo Yokoyama. 2019-10-23. Analyzing Trade-offs in Reversible Linear and Binary Search Algorithms. https://arxiv.org/abs/1910.10406
Cite the original work for its findings. Save a collection to share your selection of sources.