Sorting Networks
Sorting Networks Uri Zwick Tel Aviv University May 2015 Comparators 푥 min(푥, 푦) 푦 max(푥, 푦) 푥 min(푥, 푦) 푦 max(푥, 푦) Can we use comparators to build efficient sorting networks? Comparator networks A comparator network is a network composed of comparators. There are 푛 input wires, each feeding a single comparator. Each output of a comparator is either an output wire, or feeds a single comparator. The network must be acyclic. Number of output wires must also be 푛. “Standard form” Exercise: Show that any comparator network is equivalent to a network in standard form. A simple sorting network 5 comparators 3 levels Insertion sort 푆표푟푡(푛) Selection/bubble sort 푆표푟푡(푛) Selection/bubble Sort 푛 푛−1 Size = Depth = 2푛 − 1 2 Exercise: Any sorting network that only compares 푛 푛−1 adjacent lines must be of size at least 2 Exercise: Prove that the network on the next slide, whose depth is 푛, is a sorting network Odd-Even Transposition Sort 푛 푛−1 Size = Depth = 푛 2 The 0-1 principle Theorem: If a network sort all 0-1 inputs, then it sort all inputs The 0-1 principle Lemma: Let 푓 be a monotone non-decreasing function. Then, if a network maps 푥1, 푥2, . , 푥푛 to 푦1, 푦2, . , 푦푛, then it maps 푓(푥1), 푓(푥2), . , 푓(푥푛) to 푓(푦1), 푓(푦2), . , 푓(푦푛) Proof: By induction on the number of comparisons using 푓 min 푎, 푏 = min(푓 푎 , 푓 푏 ) 푓 max 푎, 푏 = max(푓 푎 , 푓 푏 ) The 0-1 principle Proof: Suppose that a network is not a sorting network.
[Show full text]