Instance Method

sorted()

Returns the elements of the sequence, sorted.

Declaration

func sorted() -> [Element]
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 (<).

let students: Set = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"]
let sortedStudents = students.sorted()
print(sortedStudents)
// Prints "["Abena", "Akosua", "Kofi", "Kweku", "Peter"]"

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

let descendingStudents = students.sorted(by: >)
print(descendingStudents)
// Prints "["Peter", "Kweku", "Kofi", "Akosua", "Abena"]"

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.

See Also

Reordering an Array's Elements

func sort()

Sorts the collection in place.

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

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

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.