Logo Data Structures and Algorithms with Object-Oriented Design Patterns in Java
next up previous contents index

Comparing Sets

There is a special family of operators for comparing sets. Consider two sets, say S and T. We say that S is a subset  of T, written tex2html_wrap_inline62330, if every element of S is also an element of T. If there is at least one element of T that is not also an element of S, we say that S is a proper subset   of T, written tex2html_wrap_inline66330. We can also reverse the order in which the expressions are written to get tex2html_wrap_inline66332 or tex2html_wrap_inline66334, which indicates that T is a (proper) superset    of S.

The set comparison operators follow the rule that if tex2html_wrap_inline62330 and tex2html_wrap_inline62332 then tex2html_wrap_inline66344, which is analogous to a similar property of numbers: tex2html_wrap_inline66346. However, set comparison is unlike numeric comparison in that there exist sets S and T for which neither tex2html_wrap_inline62330 nor tex2html_wrap_inline62332! For example, clearly this is the case for tex2html_wrap_inline66356 and tex2html_wrap_inline66358. Mathematically, the relation tex2html_wrap_inline66360 is called a partial order  because there exist some pairs of sets for which neither tex2html_wrap_inline62330 nor tex2html_wrap_inline62332 holds; whereas the relation tex2html_wrap_inline58870 (among integers, say) is a total order.

Program gif defines the methods isEQ and isSubset each of which take argument that is assumed to be a SetAsArray instance. The former tests for equality and the latter determines whether the relation tex2html_wrap_inline66360 holds between this and set. Both operators return a boolean result. The worst-case running time of each of these operations is clearly O(N).

   program27617
Program: SetAsArray class isEQ and isSubset methods.

A complete repertoire of comparison methods would also include methods to compute tex2html_wrap_inline66372, tex2html_wrap_inline66374, tex2html_wrap_inline66376, and tex2html_wrap_inline60726. These operations follow directly from the implementation shown in Program gif (Exercise gif).


next up previous contents index

Bruno Copyright © 1998 by Bruno R. Preiss, P.Eng. All rights reserved.