Instance Method

# sorted()

Returns the elements of the sequence, sorted.

## Declaration

Available when Element conforms to Comparable.

## Return Value

A sorted array of the sequence’s elements.

## Discussion

You can sort any sequence of elements that conform to the `Comparable` protocol by calling this method. Elements are sorted in ascending order.

Here’s an example of sorting a list of students’ names. Strings in Swift conform to the `Comparable` protocol, so the names are sorted in ascending order according to the less-than operator (`<`).

To sort the elements of your sequence in descending order, pass the greater-than operator (`>`) to the `sorted(by:)` method.

The sorting algorithm is not guaranteed to be stable. A stable sort preserves the relative order of elements that compare equal.

Complexity: O(n log n), where n is the length of the sequence.

### Transforming a Set

`func map<T>((Element) -> T) -> [T]`

Returns an array containing the results of mapping the given closure over the sequence’s elements.

`func compactMap<ElementOfResult>((Element) -> ElementOfResult?) -> [ElementOfResult]`

Returns an array containing the non-`nil` results of calling the given transformation with each element of this sequence.

`func flatMap<SegmentOfResult>((Element) -> SegmentOfResult) -> [SegmentOfResult.Element]`

Returns an array containing the concatenated results of calling the given transformation with each element of this sequence.

`func reduce<Result>(Result, (Result, Element) -> Result) -> Result`

Returns the result of combining the elements of the sequence using the given closure.

`func reduce<Result>(into: Result, (inout Result, Element) -> ()) -> Result`

Returns the result of combining the elements of the sequence using the given closure.

`func sorted(by: (Element, Element) -> Bool) -> [Element]`

Returns the elements of the sequence, sorted using the given predicate as the comparison between elements.

`func shuffled() -> [Element]`

Returns the elements of the sequence, shuffled.

`func shuffled<T>(using: inout T) -> [Element]`

Returns the elements of the sequence, shuffled using the given generator as a source for randomness.

`var lazy: LazySequence<Set<Element>>`

A sequence containing the same elements as this sequence, but on which some operations, such as `map` and `filter`, are implemented lazily.