finallyif our application involves sorting entries with small integer keys or dtuples of small integer keysthen bucket-sort or radix-sort is an excellent choicefor it runs in ( ( )timewhere [ , is the range of integer keys (and for bucket sortthusif ( nis significantly "belowthe nlogn functionthen this sorting method should run faster than even quick-sort or heap-sort thusour study of all these different sorting algorithms provides us with versatile collection of sorting methods in our algorithm engineering "toolbox the set adt and union/find structures in this sectionwe introduce the set adt set is collection of distinct objects that isthere are no duplicate elements in setand there is no explicit notion of keys or even an order even sowe include our discussion of sets here in on sortingbecause sorting can play an important role in efficient implementations of the operations of the set adt sets and some of their uses firstwe recall the mathematical definitions of the unionintersectionand subtraction of two sets and ba { :xis in or is in } { : is in and is in } { : is in and /is in bexample most internet search engines storefor each word in their dictionary databasea setw( )of web pages that contain xwhere each web page is identified by unique internet address when presented with query for word xsuch search engine need only return the web pages in the set ( )sorted according to some proprietary priority ranking of page "importance but when presented with two-word query for words and ysuch search engine must first compute the intersection (xw( )and then return the web pages in the resulting set sorted by priority several search engines use the set intersection algorithm described in this section for this computation fundamental methods of the set adt the fundamental methods of the set adtacting on set aare as followsunion( )replace with the union of and bthat isexecute -