Progressive sorting in the external memory model Amir Mesrikhani 1 Mohammad Farshi 1 1 Combinatorial and Geometric Algorithms Lab, Department of Mathematical Sciences, Yazd University, Yazd, Iran. Abstract Executing all steps of an algorithm that faces with massive input data may take a long time. A progressive algorithm solves the problem step by step, and produces a partial solution in each step which approximates the final solution. Therefore, the user can decide to stop the algorithm or continue to get better solutions. In this paper, we consider the problem of sorting a set of N real numbers, and design a progressive algorithm with (log / /) steps that takes (/) I/O operations in each step in the external memory model. The upper bound for the error of the partial solution in step r is ( (/) /2 ). Keywords: Progressive algorithm, Partial solution, Sorting problem, External memory algorithm. 1. Introduction The massive data raise two important challenges in designing algorithms. First, consider an algorithm that processes a large amount of input data. Executing all steps of the algorithm to compute the final output may take a long time. Therefore, it is interesting to design an algorithm that generates partial solutions in some specific steps. The partial solution approximates the final solutions with respect to an error function. Second, massive data do not fit into the main memory. Therefore, the data is maintained in the secondary memory like a disk. We know that the time of transferring some blocks of data between the main memory and the secondary memory usually overcomes the time of processing data in the processor. Consequently, for processing massive data, one has to develop an algorithm such that it is efficient according to the memory hierarchy. These issues motivate us to design algorithms that solve problems with a large amount of input data step by step. Also, these algorithms should be efficient in term of the transferred blocks of data between the main memory and the secondary memory. 1.1. Progressive algorithm Informally, an algorithm that solves a problem step by step and reports a partial solution with guaranteed error bound in each step is called a progressive algorithm [1]. Reporting the partial solutions to the user is the main idea of the progressive algorithms. The user of these algorithms, based on the error of each partial solution, can stop the running of the algorithm or decide to continue to produce better partial solutions whose error is less than the error of the previous partial solutions. Let be the partial solution in step r. The error of is measured by an error function. This function takes as an argument and outputs a nonnegative value as the error value of . The speed of convergence of the partial solution to the final solution is computed by a convergence function. This function takes the step number and outputs the upper bound of the error of the corresponding partial solution. In 2014, Alewijnse et al. [1] proposed the following formal definition for the progressive algorithm. Definition 1. A k-step progressive algorithm with respect to the error function and the convergence function conv, is an algorithm that generates the partial solution in step r such The CSI Journal on Computer Science and Engineering Vol. 15, No. 2, 2018 Pages 1-4 Regular Paper