On an improved algorithm for decentralized extrema finding in circular configurations of processors

This note presents a more efficient algorithm for finding the largest element in a circular list of processors when messages can be passed in either direction. It passes 2<italic>N</italic>*floor(lg <italic>N</italic>) + 3<italic>N</italic> messages in the worst case, compared to Chang and Roberts' <italic>N</italic>(<italic>N</italic> + 1)/2 and Hirschberg and Sinclair's 8<italic>N</italic> + 8*ceiling(<italic>N</italic> lg <italic>N</italic>) messages. The technique is a selective elimination of possible processes, which then merely relay future messages between the remaining contenders.