We consider the problem of designing a distributed algorithm that, given an arbitrary connected graph G of nodes with unique labels, converts G into a sorted list of nodes. This algorithm should be as simple as possible and, for scalability, should guarantee a polylogarithmic runtime as well as at most a polylogarithmic increase in the degree of each node during its execution. Furthermore, it should be selfstabilizing, that is, it should be able to eventually construct a sorted list from any state in which the graph is connected. It turns out that satisfying all of these demands at the same time is not easy. Our basic approach towards this goal is the so-called linearization technique: each node v repeatedly does the following with its neighbors: • for its left (i.e., smaller) neighbors u1, . . . , uk in the order of decreasing labels, v replaces {v, u1}, . . . , {v, uk} by {v, u1}, {u1, u2}, . . . , {uk−1, uk}, and • for its right (i.e., larger) neighbors w1, . . . , w in the o...
Melih Onus, Andréa W. Richa, Christian Sche