In this paper we investigate the design and analysis of algorithms resilient to memory faults. We focus on algorithms that, despite the corruption of some memory values during their execution, are nevertheless able to produce a correct output at least on the set of uncorrupted values. In this framework, we consider two fundamental problems: sorting and searching. In particular, we prove that any O(n log n) comparison-based sorting algorithm can tolerate the corruption of at most O((n log n)1/2 ) keys. Furthermore, we present one comparison-based sorting algorithm with optimal space and running time that is resilient to O((n log n)1/3 ) memory faults. We also prove polylogarithmic lower and upper bounds on resilient searching.
Irene Finocchi, Giuseppe F. Italiano