SortingMachine
8 February 2019 OSU CSE 1
SortingMachine 8 February 2019 OSU CSE 1 SortingMachine The - - PowerPoint PPT Presentation
SortingMachine 8 February 2019 OSU CSE 1 SortingMachine The SortingMachine component family allows you to add elements of type T to a collection of such elements, and then to remove them one at a time in sorted order according to a
8 February 2019 OSU CSE 1
8 February 2019 OSU CSE 2
8 February 2019 OSU CSE 3
8 February 2019 OSU CSE 4
8 February 2019 OSU CSE 5
8 February 2019 OSU CSE 6
8 February 2019 OSU CSE 7
8 February 2019 OSU CSE 8
8 February 2019 OSU CSE 9
SortingMachineKernel has contracts for six methods: add changeToExtractionMode removeFirst isInInsertionMode
size
8 February 2019 OSU CSE 10
8 February 2019 OSU CSE 11
8 February 2019 OSU CSE 12
8 February 2019 OSU CSE 13
8 February 2019 OSU CSE 14
8 February 2019 OSU CSE 15
8 February 2019 OSU CSE 16
8 February 2019 OSU CSE 17
private static class IntegerLT implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { if (o1 < o2) { return -1; } else if (o1 > o2) { return 1; } else { return 0; } } }
8 February 2019 OSU CSE 18
private static class IntegerLT implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { if (o1 < o2) { return -1; } else if (o1 > o2) { return 1; } else { return 0; } } }
8 February 2019 OSU CSE 19
private static class IntegerLT implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { return o1 – o2; } }
8 February 2019 OSU CSE 20
private static class IntegerLT implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { return o1.compareTo(o2); } }
8 February 2019 OSU CSE 21
8 February 2019 OSU CSE 22
8 February 2019 OSU CSE 23
Comparator<Integer> ci = new IntegerLT (); SortingMachine<Integer> si = new SortingMachine1L<>(ci);
8 February 2019 OSU CSE 24
Comparator<Integer> ci = new IntegerLT (); SortingMachine<Integer> si = new SortingMachine1L<>(ci);
si = (true, ci, {})
8 February 2019 OSU CSE 25
8 February 2019 OSU CSE 26
8 February 2019 OSU CSE 27
si = (true, ci, {13, 8}) x = 13 si.add(x);
8 February 2019 OSU CSE 28
si = (true, ci, {13, 8}) x = 13 si.add(x); si = (true, ci, {13, 13, 8}) x = 13
8 February 2019 OSU CSE 29
si = (true, ci, {13, 8}) x = 13 si.add(x); si = (true, ci, {13, 13, 8}) x = 13
8 February 2019 OSU CSE 30
8 February 2019 OSU CSE 31
si = (true, ci, {13, 13, 8}) si.changeToExtractionMode();
8 February 2019 OSU CSE 32
si = (true, ci, {13, 13, 8}) si.changeToExtractionMode(); si = (false, ci, {13, 13, 8})
not this.insertion_mode and this.contents /= {}
removeFirst is in #this.contents and for all x: T where (x is in this.contents) (this.ordering(removeFirst, x)) and this.contents = #this.contents \ {removeFirst}
8 February 2019 OSU CSE 33
not this.insertion_mode and this.contents /= {}
removeFirst is in #this.contents and for all x: T where (x is in this.contents) (this.ordering(removeFirst, x)) and this.contents = #this.contents \ {removeFirst}
8 February 2019 OSU CSE 34
not this.insertion_mode and this.contents /= {}
removeFirst is in #this.contents and for all x: T where (x is in this.contents) (this.ordering(removeFirst, x)) and this.contents = #this.contents \ {removeFirst}
8 February 2019 OSU CSE 35
8 February 2019 OSU CSE 36
si = (false, ci, {13, 13, 8}) x = -425 x = si.removeFirst();
8 February 2019 OSU CSE 37
si = (false, ci, {13, 13, 8}) x = -425 x = si.removeFirst(); si = (false, ci, {13, 13}) x = 8
8 February 2019 OSU CSE 38
si = (false, ci, {13, 13, 8}) x = -425 x = si.removeFirst(); si = (false, ci, {13, 13}) x = 8
8 February 2019 OSU CSE 39
si = (false, ci, {13, 13}) x = 8 x = si.removeFirst();
8 February 2019 OSU CSE 40
si = (false, ci, {13, 13}) x = 8 x = si.removeFirst(); si = (false, ci, {13}) x = 13
8 February 2019 OSU CSE 41
si = (false, ci, {13, 13}) x = 8 x = si.removeFirst(); si = (false, ci, {13}) x = 13
8 February 2019 OSU CSE 42
8 February 2019 OSU CSE 43
8 February 2019 OSU CSE 44
8 February 2019 OSU CSE 45
multiset_entries(~this.seen * ~this.unseen) = this.contents
8 February 2019 OSU CSE 46
multiset_entries(~this.seen * ~this.unseen) = this.contents
8 February 2019 OSU CSE 47
8 February 2019 OSU CSE 48
8 February 2019 OSU CSE 49
8 February 2019 OSU CSE 50
8 February 2019 OSU CSE 51
8 February 2019 OSU CSE 52
8 February 2019 OSU CSE 53
8 February 2019 OSU CSE 54
8 February 2019 OSU CSE 55