deferred class interface DS_INDEXABLE_SORTER[G->COMPARABLE] feature(s) from DS_SORTER -- Status report sorted (a_container: DS_INDEXABLE[G]): BOOLEAN -- Is a_container sorted in increasing order? require a_container_not_void: a_container /= Void reverse_sorted (a_container: DS_INDEXABLE[G]): BOOLEAN -- Is a_container sorted in decreasing order? require a_container_not_void: a_container /= Void feature(s) from DS_SORTER -- Sort sort (a_container: DS_INDEXABLE[G]) -- Sort a_container in increasing order. require a_container_not_void: a_container /= Void ensure sorted: sorted(a_container) reverse_sort (a_container: DS_INDEXABLE[G]) -- Sort a_container in decreasing order. require a_container_not_void: a_container /= Void ensure sorted: reverse_sorted(a_container) feature(s) from DS_INDEXABLE_SORTER -- Status report subsorted (a_container: DS_INDEXABLE[G]; lower, upper: INTEGER): BOOLEAN -- Is a_container sorted in increasing order -- within bounds lower..upper? require a_container_not_void: a_container /= Void; valid_lower: 1 <= lower and lower <= a_container.count; valid_upper: 1 <= upper and upper <= a_container.count; valid_bounds: lower <= upper reverse_subsorted (a_container: DS_INDEXABLE[G]; lower, upper: INTEGER): BOOLEAN -- Is a_container sorted in decreasing order -- within bounds lower..upper? require a_container_not_void: a_container /= Void; valid_lower: 1 <= lower and lower <= a_container.count; valid_upper: 1 <= upper and upper <= a_container.count; valid_bounds: lower <= upper feature(s) from DS_INDEXABLE_SORTER -- Sort subsort (a_container: DS_INDEXABLE[G]; lower, upper: INTEGER) -- Sort a_container in increasing order -- within bounds lower..upper. require a_container_not_void: a_container /= Void; valid_lower: 1 <= lower and lower <= a_container.count; valid_upper: 1 <= upper and upper <= a_container.count; valid_bounds: lower <= upper ensure subsorted: subsorted(a_container,lower,upper) reverse_subsort (a_container: DS_INDEXABLE[G]; lower, upper: INTEGER) -- Sort a_container in decreasing order -- within bounds lower..upper. require a_container_not_void: a_container /= Void; valid_lower: 1 <= lower and lower <= a_container.count; valid_upper: 1 <= upper and upper <= a_container.count; valid_bounds: lower <= upper ensure subsorted: reverse_subsorted(a_container,lower,upper) end of deferred DS_INDEXABLE_SORTER[G->COMPARABLE]