Может ли кто-нибудь объяснить, как это создает максимальную кучу в С#?C#

Место общения программистов C#
Anonymous
Может ли кто-нибудь объяснить, как это создает максимальную кучу в С#?

Сообщение Anonymous »

Я знаю, что это минимальная куча

Код: Выделить всё

var minHeap = new PriorityQueue();
Но почему этот компаратор дает максимальную кучу?

Код: Выделить всё

var maxHeap = new PriorityQueue(Comparer.Create((x, y) => y.CompareTo(x)));
Я попробовал изучить документацию по Comparer и увидел, что для этого требуется делегат Comparison. Делегат определяет, как два элемента сравниваются друг с другом. y.CompareTo(x) вернет 0, если равно, 0, если y больше x. Что меня смущает, так это то, как это влияет на порядок в приоритетной очереди. Это потому, что большее значение сравнения (например, y.CompareTo(x) возвращает большее значение) приводит к более высокому приоритету?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -heap-in-c

Вернуться в «C#»