Instance Method

# sort()

Sorts the collection in place.

## Declaration

Available when Element conforms to Comparable.

## Discussion

You can sort any mutable collection 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 collection in descending order, pass the greater-than operator (`>`) to the `sort(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 collection.

### Reordering an Array's Elements

`func sort(by: (Element, Element) -> Bool)`

Sorts the collection in place, using the given predicate as the comparison between elements.

`func sorted() -> [Element]`

Returns the elements of the sequence, sorted.

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

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

`func reverse()`

Reverses the elements of the collection in place.

`func reversed() -> ReversedCollection<Array<Element>>`

Returns a view presenting the elements of the collection in reverse order.

`func shuffle()`

Shuffles the collection in place.

`func shuffle<T>(using: inout T)`

Shuffles the collection in place, using the given generator as a source for randomness.

`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.

`func partition(by: (Element) -> Bool) -> Int`

Reorders the elements of the collection such that all the elements that match the given predicate are after all the elements that don’t match.

`func swapAt(Int, Int)`

Exchanges the values at the specified indices of the collection.