Returns the maximum element in the sequence, using the given predicate as the comparison between elements.

SDK

- Xcode 9.0+

Framework

- Swift Standard Library

## Declaration

## Parameters

`areInIncreasingOrder`

A predicate that returns

`true`

if its first argument should be ordered before its second argument; otherwise,`false`

.

## Return Value

The sequence’s maximum element if the sequence is not empty; otherwise, `nil`

.

## Discussion

The predicate must be a *strict weak ordering* over the elements. That is, for any elements `a`

, `b`

, and `c`

, the following conditions must hold:

`are`

is alwaysIn Increasing Order(a, a) `false`

. (Irreflexivity)If

`are`

andIn Increasing Order(a, b) `are`

are bothIn Increasing Order(b, c) `true`

, then`are`

is alsoIn Increasing Order(a, c) `true`

. (Transitive comparability)Two elements are

*incomparable*if neither is ordered before the other according to the predicate. If`a`

and`b`

are incomparable, and`b`

and`c`

are incomparable, then`a`

and`c`

are also incomparable. (Transitive incomparability)

This example shows how to use the `max(by:)`

method on a dictionary to find the key-value pair with the highest value.

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