1 / 115

1.18k likes | 1.31k Views

Comparison Networks. Sorting Sorting binary values Sorting arbitrary numbers Implementing symmetric functions. Mergesort(array[1,…,n] of Integers): begin Mergesort(array[1,…,n/2]); Mergesort(array[n/2+1,…,n]); Merge(array[1,…,n/2], array[n/2+1,…,n]); end.

Download Presentation
## Comparison Networks

**An Image/Link below is provided (as is) to download presentation**
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.
Content is provided to you AS IS for your information and personal use only.
Download presentation by click this link.
While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

**Comparison Networks**Sorting • Sorting binary values • Sorting arbitrary numbers • Implementing symmetric functions**Mergesort(array[1,…,n] of Integers):**begin Mergesort(array[1,…,n/2]); Mergesort(array[n/2+1,…,n]); Merge(array[1,…,n/2], array[n/2+1,…,n]); end comparisons required to merge two arrays of size m/2 comparisons to sort n elements Sorting Algorithms Example Order of comparisons not fixed in advance. Not readily implementable in hardware.**C**A D Sorting Network B B C A D Sorting Networks Order of comparisons fixed in advance. Readily implementable in hardware.**sorted**Sorting Networks (binary values) inputs outputs 1 0 0 0 0 0 Sorting Network 1 0 0 1 0 1 1 1 1 1**Comparator (2-sorter)**outputs inputs min(x, y) x C max(x, y) y**Comparator (2-sorter)**outputs inputs min(x, y) x max(x, y) y**1**0 0 0 0 1 0 0 width n 1 0 1 1 0 1 1 1 depth d Comparison Network**1**0 0 0 0 1 0 0 1 0 1 1 0 1 1 1 d stages Comparison Network n / 2 comparisons per stage**Sorting Network**Any ideas?**Sorting**Network . . . n 1 . . . . . . n Sorting Network inputs outputs**Insertion Sort Network**inputs outputs depth2n 3**Batcher Sorting Network**Next Lecture**Sorting Arbitrary Numbers**outputs inputs min(x, y) x max(x, y) y x, y can be values from any linearly ordered set, e.g., integers, reals, etc.**Comparison function:**1 if X > Y, C(X,Y) = 0 otherwise. Integer Comparator X, Y: integers represented as m-bit binary strings. Idea: use C(X,Y) to select the min and the max of X and Y.**2**2 2 9 9 6 6 2 6 9 9 6 Sorting Arbitrary Numbers sorted**1**1 1 1 5 4 4 5 4 5 5 4 Sorting Arbitrary Numbers sorted**3**3 3 3 7 0 0 7 0 7 7 0 Sorting Arbitrary Numbers not sorted How can we verify if a network sorts all possible input sequences?**inputs**outputs Sorting Arbitrary Numbers Try all possible 0/1 sequences.**inputs**outputs 0 0 0 0 0 0 0 0 0 0 0 0 Sorting Arbitrary Numbers 000 000 Try all possible 0/1 sequences.**0**0 0 0 0 0 0 0 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 Try all possible 0/1 sequences.**0**0 0 0 1 0 0 1 0 1 1 0 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 Try all possible 0/1 sequences.**0**0 0 0 1 1 1 1 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 Try all possible 0/1 sequences.**0**0 0 1 1 0 0 0 0 1 1 0 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 Try all possible 0/1 sequences.**0**0 0 1 1 1 1 0 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 Try all possible 0/1 sequences.**1**1 1 1 1 0 0 1 0 1 1 0 not sorted! Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 110 101 Try all possible 0/1 sequences.**1**1 1 1 1 1 1 1 1 1 1 1 not sorted! Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 110 101 111 111 Try all possible 0/1 sequences.**inputs**outputs Sorting Arbitrary Numbers Try all possible 0/1 sequences.**inputs**outputs 0 0 0 0 0 0 0 0 0 0 0 0 Sorting Arbitrary Numbers 000 000 Try all possible 0/1 sequences.**0**0 0 0 0 0 0 0 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 Try all possible 0/1 sequences.**0**0 0 0 1 1 0 1 0 0 1 0 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 Try all possible 0/1 sequences.**0**0 0 0 1 1 1 1 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 Try all possible 0/1 sequences.**0**0 0 1 1 1 0 0 0 0 1 0 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 Try all possible 0/1 sequences.**0**0 0 1 1 1 1 0 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 Try all possible 0/1 sequences.**1**0 0 1 1 1 1 1 0 1 1 0 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 110 011 Try all possible 0/1 sequences.**1**1 1 1 1 1 1 1 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 110 011 111 111 Try all possible 0/1 sequences.**Sorting Arbitrary Numbers**inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 110 011 111 111 all sorted! Try all possible 0/1 sequences.**Zero-One Principle**If a comparison network sorts all possible sequences of 0’s and 1’s correctly, then it sorts all sequences ofarbitrary numbers correctly.**Lemma**Given For a monotonically increasing function f,**Lemma**Given For a monotonically increasing function f,**Proof: Lemma**f is monotonically increasing:**Proof: Lemma**f is monotonically increasing:**Proof: Lemma**f is monotonically increasing:**Generalization**Given**Generalization**For a monotonically increasing function f, (by induction)**Suppose**a) the network sorts all sequences of 0’s and 1’s, b) there exists a sequence that it doesn’t sort, i.e., such that but is placed before in the output. Define 0 if f (x) = 1 otherwise Proof: Zero-One Principle**.**. . . . . Sorting Network . . . Proof: Zero-One Principle**.**. . . . . Proof: Zero-One Principle Sorting Network . . .

More Related