Вы могли бы легко написать эту функцию самостоятельно. Просто переберите массив. Сложное дизайнерское решение заключается в том, что делать, когда разные компараторы дают разные результаты. Например. Допустим, мы сравниваем Ferrari и большую кучу грязи, используя массив am с двумя компараторами: стоимость и размер. Ferrari стоит дороже, но куча грязи больше. Что мы говорим "больше"? Это дизайнерское решение, которое вы должны принять на основе вашей конкретной проблемной области.