36:
1867:
and are stored as distinct items. For example, given a list of people (by name) and ages (in years), one could construct a multiset of ages, which simply counts the number of people of a given age. Alternatively, one can construct a multiset of people, where two people are considered equivalent if
1875:
but still distinct under another relation. Some types of multiset implementations will store distinct equal objects as separate items in the data structure; while others will collapse it down to one version (the first one encountered) and keep a positive integer count of the multiplicity of the
2041:
Where a multiset data structure is not available, a workaround is to use a regular set, but override the equality predicate of its items to always return "not equal" on distinct objects (however, such will still not be able to store multiple occurrences of the same object) or use an
1178:: given a set consisting of sets and atomic elements (elements that are not sets), returns a set whose elements are the atomic elements of the original top-level set or elements of the sets it contains. In other words, remove a level of nesting – like
1496:
template class, which is implemented using a hash table. In sets, the elements themselves are the keys, in contrast to sequenced containers, where elements are accessed using their (relative or absolute) position. Set elements must have a strict weak
437:
1882:
The set of all bags over type T is given by the expression bag T. If by multiset one considers equal items identical and simply counts them, then a multiset can be interpreted as a function from the input domain to the non-negative integers
171:
that do not change after they are constructed. Static sets allow only query operations on their elements — such as checking whether a given value is in the set, or enumerating the values in some arbitrary order. Other variants, called
850:
Some set structures may allow only some of these operations. The cost of each operation will depend on the implementation, and possibly also on the particular values stored in the set, and the order in which they are inserted.
2607:
Recent Trends in Data Type
Specification: 10th Workshop on Specification of Abstract Data Types Joint with the 5th COMPASS Workshop, S. Margherita, Italy, May 30 - June 3, 1994. Selected Papers, Volume
1868:
their ages are the same (but may be different people and have different names), in which case each pair (name, age) must be stored, and selecting on a given age gives all the people of a given age.
1944:
2544:
Management and
Processing of Complex Data Structures: Third Workshop on Information Systems and Artificial Intelligence, Hamburg, Germany, February 28 - March 2, 1994. Proceedings,
1887:), generalizing the identification of a set with its indicator function. In some cases a multiset in this counting sense may be generalized to allow negative values, as in Python.
1247:, which provide different time and space trade-offs for various operations. Some implementations are designed to improve the efficiency of very specialized operations, such as
283:
1310:
for unsorted sets (which has O(1) average-case, but O(n) worst-case, for most operations). A sorted linear hash table may be used to provide deterministically ordered sets.
343:
1271:, ignoring the order of the elements and taking care to avoid repeated values. This is simple but inefficient, as operations like set membership or element deletion are
250:
1593:
335:
315:
223:
3594:
1587:
1859:, which is similar to a set but allows repeated ("equal") values (duplicates). This is used in two distinct senses: either equal values are considered
3270:
2836:
1279:), as they require scanning the entire list. Sets are often instead implemented using more efficient data structures, particularly various flavors of
53:
1914:
1396:), but specialized algorithms may yield lower asymptotic time bounds. If sets are implemented as sorted lists, for example, the naive algorithm for
3207:
2841:
2831:
2826:
3564:
2284:, a table can be a (mathematical) set or a multiset, depending on the presence of unicity constraints on some columns (which turns it into a
2281:
2814:
2715:
2589:
Inductive
Synthesis of Functional Programs: Universal Planning, Folding of Finite Programs, and Schema Abstraction by Analogical Reasoning,
1835:, sets can be emulated using associative arrays, by using the elements as keys, and using a dummy value as the values, which are ignored.
1294:
As sets can be interpreted as a kind of map (by the indicator function), sets are commonly implemented in the same way as (partial) maps (
100:
3503:
1906:
1303:
119:
1879:
As with sets, multisets can naturally be implemented using hash table or trees, which yield different performance characteristics.
1581:
1575:
72:
1381:
implements a set probabilistically, using a very compact representation but risking a small chance of false positives on queries.
2636:
1182:
but allow atoms. This can be done a single time, or recursively flattening to obtain a set of only atomic elements. For example,
1968:
3293:
2965:
749:
157:
79:
3298:
3082:
2887:
2819:
2781:
1902:
1743:
1479:
955:
937:
57:
1569:
442:
In theory, many other abstract data structures can be viewed as set structures with additional operations and/or additional
3633:
3263:
2403:
2294:
allows the selection of rows from a relational table: this operation will in general yield a multiset, unless the keyword
2018:
1788:
1616:
2046:
mapping the values to their integer multiplicities (this will not be able to distinguish between equal elements at all).
3638:
2982:
2912:
2760:
1766:
1681:, using equality and identity for inclusion test respectively. Many dialects provide variations for compressed storage (
1539:
1528:
965:
86:
1980:
1974:
1781:
3377:
3360:
3237:
1933:
1708:
1606:
1545:
1533:
1519:
1501:
1449:
1313:
Further, in languages that support maps but not sets, sets can be implemented in terms of maps. For example, a common
912:
3576:
3343:
3338:
2992:
2860:
1812:
68:
1524:
160:
types, rather than retrieving a specific element from a set, one typically tests a value for membership in a set.
46:
3333:
3170:
3122:
3034:
3012:
3007:
2935:
2801:
2623:
1892:
1465:
1268:
517:
3326:
3256:
2708:
1739:
1610:
1602:
1630:
since 2.4, and since Python 3.0 and 2.7, supports non-empty set literals using a curly-bracket syntax, e.g.:
3607:
3584:
3197:
3112:
2611:
2007:
904:
returns the set consisting of all elements except for the arbitrary element. Can be interpreted in terms of
543:
2385:
2298:
is used to force the rows to be all different, or the selection includes the primary (or a candidate) key.
3589:
3389:
2940:
2796:
2755:
2750:
2595:
2342:
3515:
3470:
3432:
2930:
2905:
2547:
1620:
1492:
1280:
432:{\displaystyle F(x)={\begin{cases}1,&{\mbox{if }}x\in S\\0,&{\mbox{if }}x\not \in S\end{cases}}}
2023:
255:
3455:
2732:
2001:
1872:
1437:
1362:
1209:
2037:
class, which can be instantiated to use either identity or equality as predicate for inclusion test.
1991:
1748:
367:
93:
3628:
3202:
3180:
3107:
2960:
2952:
2872:
2701:
859:
There are many other operations that can (in principle) be defined in terms of the above, such as:
447:
3498:
2673:
1475:
3483:
3348:
3308:
3185:
3165:
3117:
3092:
2877:
2846:
1831:
As noted in the previous section, in languages which do not directly support sets but do support
1512:
491:
202:
141:
2389:
that can be used in another query, or in assignment to a column of appropriate collection type.
1506:
3417:
3316:
3072:
3002:
2977:
2791:
2786:
2408:
2043:
1832:
1321:
that converts an array to a hash whose values are the sentinel value 1, for use as a set, is:
1314:
1295:
1897:
1871:
Formally, it is possible for objects in computer science to be considered "equal" under some
1823:
1817:
1725:
classes that implement sets using hash tables, the latter allowing iteration in sorted order.
3440:
3217:
3102:
2900:
1453:
1070:: checks whether the two given sets are equal (i.e. contain all and only the same elements).
133:
228:
3460:
3402:
3222:
3087:
3039:
2972:
2532:
1425:
472:
286:
2663:, Journal of Functional Programming 3(4):553-562, October 1993. Retrieved on 2015-03-11.
1762:
package provides a set module which implements a set data structure based upon TCL lists.
1713:
1663:
1657:
1651:
1142:
for some definition of "sum". For example, over integers or reals, it may be defined as
3552:
3530:
3355:
3279:
3175:
2997:
2987:
2895:
2171:
2012:
1939:
1884:
1698:
1646:
1598:
1556:
1244:
320:
300:
208:
2642:
1384:
The
Boolean set operations can be implemented in terms of more elementary operations (
3622:
3525:
3422:
3407:
3097:
2285:
1440:) that are optimized for one or more of these operations, at the expense of others.
3054:
3029:
2398:
1963:
1735:
module, which implements a functional set data structure using binary search trees.
290:
189:
is a special kind of set in which an element can appear multiple times in the set.
17:
1470:
3520:
3445:
3232:
3227:
3077:
3024:
2851:
2503:(1) time by simply inserting at an end, but if one avoids duplicates this takes
1996:
1564:
1560:
1474:
template class, which is typically implemented using a binary search tree (e.g.
1288:
642:
198:
149:
35:
1255:. Implementations described as "general use" typically strive to optimize the
3508:
3412:
3137:
3132:
3049:
3017:
2922:
2865:
2591:
1918:
1776:
1552:
1307:
1081:
153:
2563:
3450:
3397:
3212:
3190:
3147:
3142:
2809:
2765:
2724:
2030:
1670:
1378:
1374:
1299:
782:: creates a new set structure, initially empty but capable of holding up to
3547:
2309:
keyword can be used to transform a subquery into a collection expression:
2225:: returns a bag containing just those values that occur in either the bag
1127:
Other operations can be defined for sets with elements of a special type:
3493:
3321:
3127:
2576:
1851:
1844:
1377:, which also support very efficient union and intersection operations. A
753:
659:
185:
145:
2656:
1922:
1487:
3542:
3488:
1806:
1800:
748:: creates a new set structure containing all the elements of the given
1793:
1452:; many languages now include it, whether in the core language or in a
925:: returns the set of distinct values resulting from applying function
3537:
3478:
1759:
573:
294:
2562:: Retrieve an arbitrary element from a set without removing it; see
1803:
has literal syntax for hashed sets, and also implements sorted sets.
1436:. Moreover, there are specialized set data structures (such as the
2559:
1461:
1298:) – in this case in which the value of each key-value pair has the
3248:
1752:
module, which implements immutable sets using binary search trees.
1728:
589:
Typical operations that may be provided by a static set structure
443:
180:, allow also the insertion and deletion of elements from the set.
3559:
2745:
1785:
as a standard built-in object with the ECMAScript 2015 standard.
1318:
1284:
1036:
must be associative and commutative for this to be well-defined.
205:(characteristic function): accordingly, a set of values of type
3252:
2697:
2674:"ECMAScript 2015 Language Specification – ECMA-262 6th Edition"
1895:
implements both sorted and unsorted multisets. It provides the
1306:
for sorted sets (which has O(log n) for most operations), or a
2740:
2302:
2291:
1756:
29:
2693:
446:
imposed on the standard operations. For example, an abstract
2177:, returns a bag which contains the same elements as the bag
261:
1486:
template class, which implements a set using a hash table.
425:
1936:, third-party libraries provide multiset functionality:
2610:
ed. Egidio
Astesiano, Gianna Reggio, Andrzej Tarlecki,
1863:
and are simply counted, or equal values are considered
2431:
can be implemented on a derived class of the built-in
1160:: given a set of sets, return the union. For example,
458:
operation that returns the element of smallest value.
407:
379:
1849:
A generalization of the notion of a set is that of a
346:
323:
303:
258:
231:
211:
144:
that can store unique values, without any particular
1929:
class, which was copied and eventually standardized.
668:: returns a function that returns one more value of
3575:
3469:
3431:
3388:
3307:
3286:
3156:
3065:
2951:
2921:
2886:
2774:
2731:
1537:class implementing it using a hash table), and the
60:. Unsourced material may be challenged and removed.
1549:class implementing it using a binary search tree).
1448:One of the earliest languages to support sets was
431:
329:
309:
277:
244:
217:
2197:times in the resulting bag; sometimes denoted as
1267:operations. A simple implementation is to use a
950:: returns the subset containing all elements of
772:: creates a new, initially empty set structure.
2140:: returns the number of times that the element
1809:has native support for sets, from version 2019.
1543:sub-interface to support sorted sets (with the
1913:class for the unsorted multiset, as a kind of
3264:
2709:
8:
1901:class for the sorted multiset, as a kind of
1365:. In particular a subset of the integers 1..
896:can be interpreted as the pair of selectors
842:: returns the maximum number of values that
682:: returns a list containing the elements of
27:Abstract data type for storing unique values
1952:interfaces, with implementing classes like
201:, sets are generally identified with their
3271:
3257:
3249:
2716:
2702:
2694:
2239:, except that the number of times a value
1972:interface, with implementing classes like
1921:. The unsorted multiset is standard as of
1408:will take time proportional to the length
752:or all the elements returned by the given
285:. (Subtypes and subsets may be modeled by
163:Some set data structures are designed for
2243:occurs in the resulting bag is equal to (
2091:: checks whether each element in the bag
1917:, which implements this multiset using a
1905:, which implements this multiset using a
1302:or a sentinel value (like 1) – namely, a
1230:: returns the minimum/maximum element of
568:: a predicate that tests whether the set
406:
378:
362:
345:
322:
302:
260:
259:
257:
236:
230:
210:
148:. It is a computer implementation of the
120:Learn how and when to remove this message
2340:is a general select that can be used as
2181:, except that every element that occurs
2105:no more often than it occurs in the bag
1428:will do the job in time proportional to
450:can be viewed as a set structure with a
2524:
2420:
2068:is present (at least once) in the bag
1504:standard library provides the generic
1243:Sets can be implemented using various
765:Dynamic set structures typically add:
715:: creates a set structure with values
672:at each call, in some arbitrary order.
2346:of another more general query, while
1369:can be implemented efficiently as an
1138:: returns the sum of all elements of
471:One may define the operations of the
7:
1925:; previously SGI's STL provides the
1162:collapse({{1}, {2, 3}}) == {1, 2, 3}
651:: returns the number of elements in
58:adding citations to reliable sources
1661:classes that implement the generic
1634:; empty sets must be created using
2546:ed. Kai v. Luck, Heinz Marburger,
1642:to represent the empty dictionary.
888:: returns an arbitrary element of
870:: returns an arbitrary element of
25:
2499:Element insertion can be done in
2027:, which is similar to a multiset.
1907:self-balancing binary search tree
1304:self-balancing binary search tree
1184:flatten({1, {2, 3}}) == {1, 2, 3}
278:{\displaystyle {\mathcal {P}}(A)}
34:
2659:Efficient sets: a balancing act
2383:transforms the subquery into a
1915:unordered associative container
1731:'s standard library contains a
1711:'s standard library includes a
810:, if it is not present already.
467:Core set-theoretical operations
297:.) The characteristic function
45:needs additional citations for
1361:Other popular methods include
1164:. May be considered a kind of
356:
350:
272:
266:
1:
3372:
2782:Arbitrary-precision or bignum
2064:: checks whether the element
69:"Set" abstract data type
2049:Typical operations on bags:
1769:standard library contains a
1204:that is closest in value to
892:. Functionally, the mutator
3595:Directed acyclic word graph
3361:Double-ended priority queue
2257:# x); sometimes denoted as
1824:Ada.Containers.Ordered_Sets
1424:; whereas a variant of the
608:: checks whether the value
3655:
2678:www.ecma-international.org
2594:, Springer, Aug 21, 2003,
2579:: Add Set#pick and Set#pop
2021:standard library includes
1842:
1818:Ada.Containers.Hashed_Sets
1791:'s standard library has a
1673:'s class library includes
1531:to support sets (with the
1029:for some binary operation
3603:
3123:Strongly typed identifier
1942:Collections provides the
1893:Standard Template Library
1482:'s STL also provides the
1466:Standard Template Library
1438:union-find data structure
1200:: returns the element of
1046:: delete all elements of
626:: checks whether the set
3327:Retrieval Data Structure
2638:Sorted Linear Hash Table
2436:
2348:
2311:
1323:
686:in some arbitrary order.
3608:List of data structures
3585:Binary decision diagram
3198:Parametric polymorphism
2566:regarding standard name
2427:For example, in Python
2148:; sometimes denoted as
2112:; sometimes denoted as
3590:Directed acyclic graph
1773:type, since Swift 1.2.
1717:module which contains
1638:, because Python uses
1426:list merging algorithm
824:: removes the element
433:
331:
311:
279:
246:
219:
2635:Wang, Thomas (1997),
2386:collection expression
1903:associative container
1649:provides the generic
954:that satisfy a given
855:Additional operations
776:create_with_capacity(
434:
332:
312:
280:
247:
245:{\displaystyle 2^{A}}
220:
3634:Composite data types
3456:Unrolled linked list
2282:relational databases
1873:equivalence relation
1557:Foundation framework
1490:has support for the
985:: returns the value
344:
321:
301:
256:
229:
209:
156:. Unlike most other
54:improve this article
3639:Abstract data types
3504:Self-balancing tree
3203:Primitive data type
3108:Recursive data type
2961:Algebraic data type
2837:Quadruple precision
2343:subquery expression
2024:collections.Counter
1989:Apple provides the
1594:NSMutableOrderedSet
1468:(STL) provides the
1084:for the static set
929:to each element of
874:, deleting it from
832:, if it is present.
802:: adds the element
293:may be replaced by
3484:Binary search tree
3349:Double-ended queue
3166:Abstract data type
2847:Extended precision
2806:Reduced precision
2144:occurs in the bag
1911:unordered_multiset
1909:. It provides the
1833:associative arrays
1742:implementation of
1296:associative arrays
429:
424:
411:
383:
327:
307:
275:
242:
225:may be denoted by
215:
203:indicator function
142:abstract data type
18:Set data structure
3616:
3615:
3418:Hashed array tree
3317:Associative array
3246:
3245:
2978:Associative array
2842:Octuple precision
2409:Set (mathematics)
2044:associative array
2011:types as part of
1995:class as part of
1689:), for ordering (
1609:types for use in
1601:APIs provide the
1416:times the length
1315:programming idiom
1021:for each element
410:
382:
330:{\displaystyle S}
310:{\displaystyle F}
218:{\displaystyle A}
130:
129:
122:
104:
16:(Redirected from
3646:
3441:Association list
3273:
3266:
3259:
3250:
3218:Type constructor
3103:Opaque data type
3035:Record or Struct
2832:Double precision
2827:Single precision
2718:
2711:
2704:
2695:
2688:
2687:
2685:
2684:
2670:
2664:
2653:
2647:
2646:
2641:, archived from
2632:
2626:
2620:
2614:
2604:
2598:
2586:
2580:
2573:
2567:
2556:
2550:
2541:
2535:
2529:
2512:
2497:
2491:
2488:
2485:
2482:
2479:
2476:
2473:
2470:
2467:
2464:
2461:
2458:
2455:
2452:
2449:
2446:
2443:
2440:
2434:
2430:
2425:
2379:
2376:
2373:
2370:
2367:
2364:
2361:
2358:
2355:
2352:
2336:
2333:
2330:
2327:
2324:
2321:
2318:
2315:
2308:
2297:
2276:Multisets in SQL
2224:
2169:
2139:
2090:
2063:
2036:
2026:
2010:
2004:
1994:
1983:
1977:
1971:
1959:
1955:
1951:
1947:
1928:
1912:
1900:
1826:
1820:
1796:
1784:
1772:
1751:
1734:
1724:
1720:
1716:
1704:
1696:
1692:
1688:
1684:
1680:
1676:
1666:
1660:
1654:
1641:
1637:
1633:
1627:
1623:
1596:
1590:
1584:
1578:
1572:
1548:
1542:
1536:
1527:
1515:
1509:
1495:
1485:
1473:
1454:standard library
1444:Language support
1407:
1395:
1391:
1387:
1357:
1354:
1351:
1348:
1345:
1342:
1339:
1336:
1333:
1330:
1327:
1266:
1262:
1258:
1254:
1250:
1229:
1221:
1199:
1185:
1181:
1177:
1167:
1163:
1159:
1149:
1137:
1123:
1105:
1079:
1069:
1045:
1020:
984:
949:
924:
907:
903:
899:
895:
887:
869:
841:
823:
801:
781:
771:
747:
714:
681:
667:
650:
639:
625:
607:
567:
541:
515:
489:
457:
438:
436:
435:
430:
428:
427:
412:
408:
384:
380:
336:
334:
333:
328:
316:
314:
313:
308:
287:refinement types
284:
282:
281:
276:
265:
264:
251:
249:
248:
243:
241:
240:
224:
222:
221:
216:
134:computer science
125:
118:
114:
111:
105:
103:
62:
38:
30:
21:
3654:
3653:
3649:
3648:
3647:
3645:
3644:
3643:
3619:
3618:
3617:
3612:
3599:
3571:
3465:
3461:XOR linked list
3427:
3403:Circular buffer
3384:
3303:
3282:
3280:Data structures
3277:
3247:
3242:
3223:Type conversion
3158:
3152:
3088:Enumerated type
3061:
2947:
2941:null-terminated
2917:
2882:
2770:
2727:
2722:
2692:
2691:
2682:
2680:
2672:
2671:
2667:
2655:Stephen Adams,
2654:
2650:
2634:
2633:
2629:
2621:
2617:
2605:
2601:
2587:
2583:
2574:
2570:
2557:
2553:
2542:
2538:
2530:
2526:
2521:
2516:
2515:
2498:
2494:
2490:
2489:
2486:
2483:
2480:
2477:
2474:
2471:
2468:
2465:
2462:
2459:
2456:
2453:
2450:
2447:
2444:
2441:
2438:
2432:
2428:
2426:
2422:
2417:
2395:
2381:
2380:
2377:
2374:
2371:
2368:
2365:
2362:
2359:
2356:
2353:
2350:
2338:
2337:
2334:
2331:
2328:
2325:
2322:
2319:
2316:
2313:
2306:
2295:
2278:
2270:
2263:
2256:
2249:
2238:
2231:
2222:
2215:
2208:
2159:
2129:
2125:
2118:
2111:
2104:
2097:
2088:
2081:
2074:
2053:
2034:
2022:
2006:
2000:
1990:
1979:
1973:
1967:
1957:
1953:
1949:
1943:
1926:
1910:
1896:
1885:natural numbers
1847:
1841:
1822:
1816:
1792:
1780:
1770:
1747:
1732:
1722:
1718:
1712:
1703:WeakIdentitySet
1702:
1699:weak references
1697:, etc.) or for
1694:
1690:
1686:
1682:
1678:
1674:
1662:
1656:
1650:
1639:
1635:
1631:
1625:
1621:
1592:
1586:
1580:
1574:
1568:
1563:) provides the
1544:
1538:
1532:
1523:
1511:
1505:
1491:
1483:
1469:
1446:
1397:
1393:
1389:
1385:
1359:
1358:
1355:
1352:
1349:
1346:
1343:
1340:
1337:
1334:
1331:
1328:
1325:
1264:
1260:
1256:
1252:
1248:
1245:data structures
1241:
1239:Implementations
1223:
1215:
1189:
1183:
1179:
1171:
1165:
1161:
1153:
1143:
1131:
1120:
1113:
1107:
1103:
1096:
1089:
1073:
1067:
1060:
1053:
1039:
1013:
1003:
997:
996:after applying
995:
974:
964:
936:
911:
905:
901:
897:
893:
881:
863:
857:
835:
813:
791:
775:
769:
763:
741:
737:
728:
721:
712:
703:
696:
689:
675:
658:
641:
633:
619:
597:
587:
557:
531:
505:
479:
473:algebra of sets
469:
464:
451:
423:
422:
404:
395:
394:
376:
363:
342:
341:
337:is defined as:
319:
318:
299:
298:
254:
253:
232:
227:
226:
207:
206:
195:
126:
115:
109:
106:
63:
61:
51:
39:
28:
23:
22:
15:
12:
11:
5:
3652:
3650:
3642:
3641:
3636:
3631:
3621:
3620:
3614:
3613:
3611:
3610:
3604:
3601:
3600:
3598:
3597:
3592:
3587:
3581:
3579:
3573:
3572:
3570:
3569:
3568:
3567:
3557:
3556:
3555:
3553:Hilbert R-tree
3550:
3545:
3535:
3534:
3533:
3531:Fibonacci heap
3528:
3523:
3513:
3512:
3511:
3506:
3501:
3499:Red–black tree
3496:
3491:
3481:
3475:
3473:
3467:
3466:
3464:
3463:
3458:
3453:
3448:
3443:
3437:
3435:
3429:
3428:
3426:
3425:
3420:
3415:
3410:
3405:
3400:
3394:
3392:
3386:
3385:
3383:
3382:
3381:
3380:
3375:
3365:
3364:
3363:
3356:Priority queue
3353:
3352:
3351:
3341:
3336:
3331:
3330:
3329:
3324:
3313:
3311:
3305:
3304:
3302:
3301:
3296:
3290:
3288:
3284:
3283:
3278:
3276:
3275:
3268:
3261:
3253:
3244:
3243:
3241:
3240:
3235:
3230:
3225:
3220:
3215:
3210:
3205:
3200:
3195:
3194:
3193:
3183:
3178:
3176:Data structure
3173:
3168:
3162:
3160:
3154:
3153:
3151:
3150:
3145:
3140:
3135:
3130:
3125:
3120:
3115:
3110:
3105:
3100:
3095:
3090:
3085:
3080:
3075:
3069:
3067:
3063:
3062:
3060:
3059:
3058:
3057:
3047:
3042:
3037:
3032:
3027:
3022:
3021:
3020:
3010:
3005:
3000:
2995:
2990:
2985:
2980:
2975:
2970:
2969:
2968:
2957:
2955:
2949:
2948:
2946:
2945:
2944:
2943:
2933:
2927:
2925:
2919:
2918:
2916:
2915:
2910:
2909:
2908:
2903:
2892:
2890:
2884:
2883:
2881:
2880:
2875:
2870:
2869:
2868:
2858:
2857:
2856:
2855:
2854:
2844:
2839:
2834:
2829:
2824:
2823:
2822:
2817:
2815:Half precision
2812:
2802:Floating point
2799:
2794:
2789:
2784:
2778:
2776:
2772:
2771:
2769:
2768:
2763:
2758:
2753:
2748:
2743:
2737:
2735:
2729:
2728:
2723:
2721:
2720:
2713:
2706:
2698:
2690:
2689:
2665:
2648:
2627:
2615:
2599:
2581:
2568:
2551:
2536:
2523:
2522:
2520:
2517:
2514:
2513:
2492:
2437:
2419:
2418:
2416:
2413:
2412:
2411:
2406:
2401:
2394:
2391:
2349:
2312:
2277:
2274:
2273:
2272:
2268:
2261:
2254:
2247:
2236:
2229:
2220:
2213:
2206:
2172:natural number
2157:
2127:
2123:
2116:
2109:
2102:
2095:
2086:
2079:
2072:
2039:
2038:
2028:
2016:
2013:CoreFoundation
1987:
1986:
1985:
1961:
1940:Apache Commons
1930:
1843:Main article:
1840:
1837:
1829:
1828:
1810:
1804:
1798:
1786:
1774:
1763:
1753:
1736:
1726:
1706:
1668:
1647:.NET Framework
1643:
1614:
1599:CoreFoundation
1550:
1517:
1498:
1476:red–black tree
1445:
1442:
1324:
1240:
1237:
1236:
1235:
1213:
1187:
1169:
1151:
1125:
1124:
1118:
1111:
1101:
1094:
1071:
1065:
1058:
1051:
1037:
1011:
1001:
989:
972:
962:
934:
909:
879:
856:
853:
848:
847:
833:
811:
789:
788:
787:
762:
759:
758:
757:
739:
733:
726:
719:
708:
701:
694:
687:
673:
656:
631:
617:
612:is in the set
598:is_element_of(
586:
583:
582:
581:
555:
542:: returns the
529:
516:: returns the
503:
490:: returns the
468:
465:
463:
460:
440:
439:
426:
421:
418:
415:
405:
403:
400:
397:
396:
393:
390:
387:
377:
375:
372:
369:
368:
366:
361:
358:
355:
352:
349:
326:
306:
274:
271:
268:
263:
239:
235:
214:
194:
191:
128:
127:
42:
40:
33:
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
3651:
3640:
3637:
3635:
3632:
3630:
3627:
3626:
3624:
3609:
3606:
3605:
3602:
3596:
3593:
3591:
3588:
3586:
3583:
3582:
3580:
3578:
3574:
3566:
3563:
3562:
3561:
3558:
3554:
3551:
3549:
3546:
3544:
3541:
3540:
3539:
3536:
3532:
3529:
3527:
3526:Binomial heap
3524:
3522:
3519:
3518:
3517:
3514:
3510:
3507:
3505:
3502:
3500:
3497:
3495:
3492:
3490:
3487:
3486:
3485:
3482:
3480:
3477:
3476:
3474:
3472:
3468:
3462:
3459:
3457:
3454:
3452:
3449:
3447:
3444:
3442:
3439:
3438:
3436:
3434:
3430:
3424:
3423:Sparse matrix
3421:
3419:
3416:
3414:
3411:
3409:
3408:Dynamic array
3406:
3404:
3401:
3399:
3396:
3395:
3393:
3391:
3387:
3379:
3376:
3374:
3371:
3370:
3369:
3366:
3362:
3359:
3358:
3357:
3354:
3350:
3347:
3346:
3345:
3342:
3340:
3337:
3335:
3332:
3328:
3325:
3323:
3320:
3319:
3318:
3315:
3314:
3312:
3310:
3306:
3300:
3297:
3295:
3292:
3291:
3289:
3285:
3281:
3274:
3269:
3267:
3262:
3260:
3255:
3254:
3251:
3239:
3236:
3234:
3231:
3229:
3226:
3224:
3221:
3219:
3216:
3214:
3211:
3209:
3206:
3204:
3201:
3199:
3196:
3192:
3189:
3188:
3187:
3184:
3182:
3179:
3177:
3174:
3172:
3169:
3167:
3164:
3163:
3161:
3155:
3149:
3146:
3144:
3141:
3139:
3136:
3134:
3131:
3129:
3126:
3124:
3121:
3119:
3116:
3114:
3111:
3109:
3106:
3104:
3101:
3099:
3098:Function type
3096:
3094:
3091:
3089:
3086:
3084:
3081:
3079:
3076:
3074:
3071:
3070:
3068:
3064:
3056:
3053:
3052:
3051:
3048:
3046:
3043:
3041:
3038:
3036:
3033:
3031:
3028:
3026:
3023:
3019:
3016:
3015:
3014:
3011:
3009:
3006:
3004:
3001:
2999:
2996:
2994:
2991:
2989:
2986:
2984:
2981:
2979:
2976:
2974:
2971:
2967:
2964:
2963:
2962:
2959:
2958:
2956:
2954:
2950:
2942:
2939:
2938:
2937:
2934:
2932:
2929:
2928:
2926:
2924:
2920:
2914:
2911:
2907:
2904:
2902:
2899:
2898:
2897:
2894:
2893:
2891:
2889:
2885:
2879:
2876:
2874:
2871:
2867:
2864:
2863:
2862:
2859:
2853:
2850:
2849:
2848:
2845:
2843:
2840:
2838:
2835:
2833:
2830:
2828:
2825:
2821:
2818:
2816:
2813:
2811:
2808:
2807:
2805:
2804:
2803:
2800:
2798:
2795:
2793:
2790:
2788:
2785:
2783:
2780:
2779:
2777:
2773:
2767:
2764:
2762:
2759:
2757:
2754:
2752:
2749:
2747:
2744:
2742:
2739:
2738:
2736:
2734:
2733:Uninterpreted
2730:
2726:
2719:
2714:
2712:
2707:
2705:
2700:
2699:
2696:
2679:
2675:
2669:
2666:
2662:
2660:
2652:
2649:
2645:on 2006-01-12
2644:
2640:
2639:
2631:
2628:
2625:
2619:
2616:
2613:
2609:
2603:
2600:
2597:
2593:
2590:
2585:
2582:
2578:
2577:Feature #4553
2572:
2569:
2565:
2561:
2555:
2552:
2549:
2545:
2540:
2537:
2534:
2528:
2525:
2518:
2510:
2506:
2502:
2496:
2493:
2424:
2421:
2414:
2410:
2407:
2405:
2402:
2400:
2397:
2396:
2392:
2390:
2388:
2387:
2347:
2345:
2344:
2310:
2304:
2299:
2293:
2289:
2287:
2286:candidate key
2283:
2275:
2267:
2260:
2253:
2246:
2242:
2235:
2228:
2219:
2212:
2207:
2204:
2200:
2196:
2192:
2188:
2184:
2180:
2176:
2173:
2167:
2163:
2158:
2155:
2151:
2147:
2143:
2137:
2133:
2128:
2122:
2115:
2108:
2101:
2094:
2085:
2078:
2073:
2071:
2067:
2061:
2057:
2052:
2051:
2050:
2047:
2045:
2033:includes the
2032:
2029:
2025:
2020:
2017:
2014:
2009:
2003:
1998:
1993:
1988:
1982:
1976:
1970:
1966:provides the
1965:
1962:
1946:
1941:
1938:
1937:
1935:
1931:
1927:hash_multiset
1924:
1920:
1916:
1908:
1904:
1899:
1894:
1890:
1889:
1888:
1886:
1880:
1877:
1874:
1869:
1866:
1862:
1858:
1854:
1853:
1846:
1838:
1836:
1834:
1825:
1819:
1815:provides the
1814:
1811:
1808:
1805:
1802:
1799:
1795:
1790:
1787:
1783:
1778:
1775:
1768:
1764:
1761:
1758:
1754:
1750:
1745:
1741:
1737:
1730:
1727:
1715:
1710:
1707:
1700:
1672:
1669:
1665:
1659:
1653:
1648:
1644:
1629:
1619:has built-in
1618:
1615:
1612:
1608:
1604:
1600:
1595:
1589:
1583:
1577:
1571:
1566:
1562:
1558:
1554:
1551:
1547:
1541:
1535:
1530:
1526:
1521:
1518:
1514:
1508:
1503:
1499:
1494:
1493:unordered_set
1489:
1481:
1477:
1472:
1467:
1463:
1459:
1458:
1457:
1455:
1451:
1443:
1441:
1439:
1435:
1431:
1427:
1423:
1419:
1415:
1411:
1405:
1401:
1382:
1380:
1376:
1372:
1368:
1364:
1322:
1320:
1316:
1311:
1309:
1305:
1301:
1297:
1292:
1290:
1286:
1282:
1278:
1274:
1270:
1246:
1238:
1233:
1227:
1219:
1214:
1211:
1207:
1203:
1197:
1193:
1188:
1175:
1170:
1157:
1152:
1147:
1144:fold(0, add,
1141:
1135:
1130:
1129:
1128:
1121:
1114:
1100:
1093:
1088:such that if
1087:
1083:
1077:
1072:
1064:
1057:
1052:
1049:
1043:
1038:
1035:
1032:
1028:
1024:
1018:
1014:
1007:
1000:
993:
988:
982:
978:
971:
967:
963:
960:
957:
953:
947:
943:
939:
935:
932:
928:
922:
918:
914:
910:
898:(pick, rest),
891:
885:
880:
877:
873:
867:
862:
861:
860:
854:
852:
845:
839:
834:
831:
827:
821:
817:
812:
809:
805:
799:
795:
790:
785:
779:
774:
773:
768:
767:
766:
760:
755:
751:
745:
740:
736:
732:
725:
718:
711:
707:
700:
693:
688:
685:
679:
674:
671:
665:
661:
657:
654:
648:
644:
637:
632:
629:
623:
618:
615:
611:
605:
601:
596:
595:
594:
592:
584:
579:
575:
571:
565:
561:
556:
553:
549:
545:
539:
535:
530:
527:
523:
519:
513:
509:
506:intersection(
504:
501:
497:
493:
487:
483:
478:
477:
476:
474:
466:
461:
459:
455:
449:
445:
419:
416:
413:
401:
398:
391:
388:
385:
373:
370:
364:
359:
353:
347:
340:
339:
338:
324:
304:
296:
292:
291:quotient sets
288:
269:
237:
233:
212:
204:
200:
192:
190:
188:
187:
181:
179:
175:
170:
166:
161:
159:
155:
152:concept of a
151:
147:
143:
139:
135:
124:
121:
113:
102:
99:
95:
92:
88:
85:
81:
78:
74:
71: –
70:
66:
65:Find sources:
59:
55:
49:
48:
43:This article
41:
37:
32:
31:
19:
3378:Disjoint-set
3367:
3044:
3003:Intersection
2681:. Retrieved
2677:
2668:
2658:
2651:
2643:the original
2637:
2630:
2618:
2606:
2602:
2588:
2584:
2571:
2554:
2543:
2539:
2527:
2508:
2504:
2500:
2495:
2435:as follows:
2423:
2404:Disjoint set
2399:Bloom filter
2384:
2382:
2341:
2339:
2300:
2290:
2279:
2265:
2258:
2251:
2244:
2240:
2233:
2226:
2217:
2210:
2202:
2198:
2194:
2190:
2186:
2182:
2178:
2174:
2165:
2161:
2153:
2149:
2145:
2141:
2135:
2131:
2120:
2113:
2106:
2099:
2092:
2083:
2076:
2069:
2065:
2059:
2055:
2048:
2040:
2008:CFMutableBag
1992:NSCountedSet
1981:TreeMultiset
1975:HashMultiset
1964:Google Guava
1881:
1878:
1870:
1864:
1860:
1856:
1850:
1848:
1830:
1687:CharacterSet
1607:CFMutableSet
1588:NSOrderedSet
1582:NSCountedSet
1576:NSMutableSet
1447:
1433:
1429:
1421:
1417:
1413:
1409:
1403:
1399:
1383:
1370:
1366:
1360:
1312:
1293:
1276:
1272:
1242:
1231:
1225:
1217:
1205:
1201:
1195:
1191:
1173:
1155:
1145:
1139:
1133:
1126:
1116:
1109:
1098:
1091:
1085:
1080:: returns a
1075:
1062:
1055:
1047:
1041:
1033:
1030:
1026:
1022:
1016:
1009:
1005:
998:
991:
986:
980:
976:
969:
958:
951:
945:
941:
930:
926:
920:
916:
889:
883:
875:
871:
865:
858:
849:
843:
837:
829:
825:
819:
815:
807:
803:
797:
793:
783:
777:
764:
761:Dynamic sets
743:
742:create_from(
734:
730:
723:
716:
709:
705:
698:
691:
683:
677:
669:
663:
652:
646:
635:
627:
621:
613:
609:
603:
599:
590:
588:
577:
569:
563:
559:
551:
547:
537:
533:
525:
521:
518:intersection
511:
507:
499:
495:
485:
481:
470:
453:
441:
196:
184:
182:
178:mutable sets
177:
173:
168:
164:
162:
150:mathematical
137:
131:
116:
110:October 2011
107:
97:
90:
83:
76:
64:
52:Please help
47:verification
44:
3521:Binary heap
3446:Linked list
3233:Type theory
3228:Type system
3078:Bottom type
3025:Option type
2966:generalized
2852:Long double
2797:Fixed point
2366:expression2
2360:expression1
2323:expression2
2317:expression1
2232:or the bag
2075:is_sub_bag(
1865:equivalent,
1779:introduced
1746:provides a
1679:IdentitySet
1565:Objective-C
1522:offers the
1289:hash tables
643:cardinality
585:Static sets
532:difference(
199:type theory
193:Type theory
169:frozen sets
3629:Data types
3623:Categories
3509:Splay tree
3413:Hash table
3294:Collection
3138:Empty type
3133:Type class
3083:Collection
3040:Refinement
3018:metaobject
2866:signedness
2725:Data types
2683:2017-07-11
2592:Ute Schmid
2519:References
2375:table_name
2332:table_name
2170:: given a
2160:scaled_by(
2098:occurs in
1999:, and the
1919:hash table
1861:identical,
1777:JavaScript
1691:OrderedSet
1667:interface.
1308:hash table
1257:element_of
1082:hash value
750:collection
744:collection
676:enumerate(
544:difference
462:Operations
158:collection
154:finite set
80:newspapers
3565:Hash tree
3451:Skip list
3398:Bit array
3299:Container
3213:Subtyping
3208:Interface
3191:metaclass
3143:Unit type
3113:Semaphore
3093:Exception
2998:Inductive
2988:Dependent
2953:Composite
2931:Character
2913:Reference
2810:Minifloat
2766:Bit array
2624:flatten()
2564:msg106593
2560:Issue7212
2185:times in
2054:contains(
2031:Smalltalk
1950:SortedBag
1876:element.
1827:packages.
1723:SortedSet
1695:SortedSet
1683:NumberSet
1671:Smalltalk
1658:SortedSet
1632:{x, y, z}
1626:frozenset
1559:(part of
1540:SortedSet
1529:interface
1497:ordering.
1379:Bloom map
1375:bit array
1353:@elements
1329:%elements
1300:unit type
1208:(by some
1180:collapse,
1154:collapse(
1115:) = hash(
1004: :=
956:predicate
846:can hold.
836:capacity(
786:elements.
630:is empty.
620:is_empty(
520:of sets
389:∈
317:of a set
3494:AVL tree
3373:Multiset
3322:Multimap
3309:Abstract
3238:Variable
3128:Top type
2993:Equality
2901:physical
2878:Rational
2873:Interval
2820:bfloat16
2531:Python:
2393:See also
2351:MULTISET
2307:MULTISET
2303:ANSI SQL
2296:DISTINCT
2250:# x) + (
2019:Python's
1969:Multiset
1898:multiset
1852:multiset
1845:Multiset
1839:Multiset
1749:Data.Set
1567:classes
1513:BTreeSet
1484:hash_set
1190:nearest(
1172:flatten(
770:create()
754:iterator
546:of sets
494:of sets
417:∉
409:if
381:if
186:multiset
3548:R+ tree
3543:R* tree
3489:AA tree
3181:Generic
3157:Related
3073:Boolean
3030:Product
2906:virtual
2896:Address
2888:Pointer
2861:Integer
2792:Decimal
2787:Complex
2775:Numeric
2558:Python
2511:) time.
2189:occurs
1958:TreeBag
1954:HashBag
1807:LabVIEW
1801:Clojure
1797:module.
1744:Haskell
1652:HashSet
1546:TreeSet
1534:HashSet
1507:HashSet
1249:nearest
906:iterate
814:remove(
660:iterate
576:of set
558:subset(
295:setoids
174:dynamic
94:scholar
3577:Graphs
3538:R-tree
3479:B-tree
3433:Linked
3390:Arrays
3171:Boxing
3159:topics
3118:Stream
3055:tagged
3013:Object
2936:String
2622:Ruby:
2596:p. 240
2469:return
2357:SELECT
2314:SELECT
2209:union(
2130:count(
1891:C++'s
1789:Erlang
1760:Tcllib
1617:Python
1597:. The
1591:, and
1516:types.
1464:, the
1450:Pascal
1398:union(
1392:, and
1363:arrays
1265:delete
1263:, and
1210:metric
1090:equal(
1054:equal(
1040:clear(
938:filter
900:where
690:build(
574:subset
480:union(
444:axioms
289:, and
165:static
140:is an
96:
89:
82:
75:
67:
3471:Trees
3344:Queue
3339:Stack
3287:Types
3066:Other
3050:Union
2983:Class
2973:Array
2756:Tryte
2612:p. 38
2575:Ruby
2548:p. 76
2533:pop()
2439:class
2415:Notes
2002:CFBag
1997:Cocoa
1923:C++11
1767:Swift
1729:OCaml
1636:set()
1628:types
1603:CFSet
1570:NSSet
1561:Cocoa
1553:Apple
1488:C++11
1390:clear
1373:-bit
1344:=>
1287:, or
1285:tries
1281:trees
1253:union
1108:hash(
1106:then
1074:hash(
882:pick(
828:from
729:,...,
634:size(
593:are:
572:is a
492:union
146:order
101:JSTOR
87:books
3560:Trie
3516:Heap
3334:List
3186:Kind
3148:Void
3008:List
2923:Text
2761:Word
2751:Trit
2746:Byte
2484:self
2478:iter
2472:next
2463:self
2457:pick
2429:pick
2378:...)
2372:FROM
2329:FROM
2305:the
2005:and
1978:and
1956:and
1948:and
1934:Java
1932:For
1821:and
1794:sets
1765:The
1755:The
1738:The
1721:and
1709:Ruby
1677:and
1664:ISet
1655:and
1645:The
1624:and
1605:and
1520:Java
1510:and
1502:Rust
1500:The
1319:Perl
1269:list
1224:max(
1216:min(
1132:sum(
966:fold
902:rest
864:pop(
792:add(
550:and
524:and
498:and
452:min(
448:heap
136:, a
73:news
3368:Set
3045:Set
2741:Bit
2608:10,
2454:def
2448:set
2442:Set
2433:set
2369:...
2335:...
2326:...
2301:In
2292:SQL
2288:).
2280:In
2035:Bag
1945:Bag
1857:bag
1855:or
1813:Ada
1782:Set
1771:Set
1757:Tcl
1740:GHC
1733:Set
1719:Set
1714:set
1675:Set
1622:set
1555:'s
1525:Set
1480:SGI
1478:);
1471:set
1462:C++
1460:In
1420:of
1412:of
1394:add
1386:pop
1341:$ _
1335:map
1317:in
1261:add
1251:or
1166:sum
1061:',
1025:of
1002:i+1
913:map
894:pop
806:to
704:,…,
640:or
252:or
197:In
176:or
167:or
138:set
132:In
56:by
3625::
2676:.
2487:))
2466:):
2451:):
2264:⊎
2216:,
2201:⊗
2193:*
2164:,
2152:#
2134:,
2119:⊑
2082:,
2058:,
1705:).
1693:,
1685:,
1640:{}
1585:,
1579:,
1573:,
1456:.
1388:,
1326:my
1291:.
1283:,
1259:,
1222:,
1212:).
1097:,
1068:')
1031:F.
1027:S,
1015:,
818:,
713:,)
475::
183:A
3272:e
3265:t
3258:v
2717:e
2710:t
2703:v
2686:.
2661:"
2657:"
2509:n
2507:(
2505:O
2501:O
2481:(
2475:(
2460:(
2445:(
2363:,
2354:(
2320:,
2271:.
2269:2
2266:B
2262:1
2259:B
2255:2
2252:B
2248:1
2245:B
2241:x
2237:2
2234:B
2230:1
2227:B
2223:)
2221:2
2218:B
2214:1
2211:B
2205:.
2203:B
2199:n
2195:m
2191:n
2187:B
2183:m
2179:B
2175:n
2168:)
2166:n
2162:B
2156:.
2154:x
2150:B
2146:B
2142:x
2138:)
2136:x
2132:B
2126:.
2124:2
2121:B
2117:1
2114:B
2110:2
2107:B
2103:1
2100:B
2096:1
2093:B
2089:)
2087:2
2084:B
2080:1
2077:B
2070:B
2066:x
2062:)
2060:x
2056:B
2015:.
1984:.
1960:.
1883:(
1701:(
1613:.
1611:C
1434:n
1432:+
1430:m
1422:T
1418:n
1414:S
1410:m
1406:)
1404:T
1402:,
1400:S
1371:n
1367:n
1356:;
1350:}
1347:1
1338:{
1332:=
1277:n
1275:(
1273:O
1234:.
1232:S
1228:)
1226:S
1220:)
1218:S
1206:x
1202:S
1198:)
1196:x
1194:,
1192:S
1186:.
1176:)
1174:S
1168:.
1158:)
1156:S
1150:.
1148:)
1146:S
1140:S
1136:)
1134:S
1122:)
1119:2
1117:S
1112:1
1110:S
1104:)
1102:2
1099:S
1095:1
1092:S
1086:S
1078:)
1076:S
1066:2
1063:S
1059:1
1056:S
1050:.
1048:S
1044:)
1042:S
1034:F
1023:e
1019:)
1017:e
1012:i
1010:A
1008:(
1006:F
999:A
994:|
992:S
990:|
987:A
983:)
981:S
979:,
977:F
975:,
973:0
970:A
968:(
961:.
959:P
952:S
948:)
946:S
944:,
942:P
940:(
933:.
931:S
927:F
923:)
921:S
919:,
917:F
915:(
908:.
890:S
886:)
884:S
878:.
876:S
872:S
868:)
866:S
844:S
840:)
838:S
830:S
826:x
822:)
820:x
816:S
808:S
804:x
800:)
798:x
796:,
794:S
784:n
780:)
778:n
756:.
746:)
738:.
735:n
731:x
727:2
724:x
722:,
720:1
717:x
710:n
706:x
702:2
699:x
697:,
695:1
692:x
684:S
680:)
678:S
670:S
666:)
664:S
662:(
655:.
653:S
649:)
647:S
645:(
638:)
636:S
628:S
624:)
622:S
616:.
614:S
610:x
606:)
604:S
602:,
600:x
591:S
580:.
578:T
570:S
566:)
564:T
562:,
560:S
554:.
552:T
548:S
540:)
538:T
536:,
534:S
528:.
526:T
522:S
514:)
512:T
510:,
508:S
502:.
500:T
496:S
488:)
486:T
484:,
482:S
456:)
454:S
420:S
414:x
402:,
399:0
392:S
386:x
374:,
371:1
365:{
360:=
357:)
354:x
351:(
348:F
325:S
305:F
273:)
270:A
267:(
262:P
238:A
234:2
213:A
123:)
117:(
112:)
108:(
98:·
91:·
84:·
77:·
50:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.