Я думаю, что первое, что нужно рассмотреть, это что такое поддерживаемая операция?
Соответствует ли «вставка значения с определенным фиксированным ключом» (например, для ключей, взятых из целочисленной области, вставка с ключом = 3) поддерживаемой операцией для минимальной кучи?
Нет, потому что эту операцию можно легко реализовать с помощью более общих поддерживаемых операций. Аналогично, вставка 2 элементов одновременно может быть выполнена с помощью существующей insertоперации.
С другой стороны, insertоперация не может быть определена иначе, как путем раскрытия деталей реализации. Это почти то же самое для операций, перечисленных на странице википедии, за heapifyисключением, что может быть реализовано с помощью последовательности insert.
Другими словами, для типа предусмотрены элементарные операции, которые тесно связаны с деталями реализации, чтобы они хорошо выполнялись, и есть другие операции, которые не соответствуют этому правилу и, следовательно, могут быть реализованы как комбинации из канонических.
Имея это в виду, думаете ли вы, что ключ увеличения может быть реализован исключительно с другими поддерживаемыми операциями, без потери производительности? Если это так, то это не поддерживаемая операция по вышеприведенному определению, в противном случае вы вполне можете быть правы.
Возможно, определение поддерживаемой операции, которую я предоставляю, является моим, насколько я знаю. Это не формально и, следовательно, подлежит обсуждению (хотя мне это кажется довольно понятным). Тем не менее, я был бы рад, если бы кто-то мог предоставить источник, который четко и однозначно определит, что является поддерживаемой операцией для типов данных, или, по крайней мере, определит ее лучше, чем моя (это определение дано в CLR? У меня нет копии) ).
Мое второе замечание будет касаться того, как мы определяем приоритетную очередь (смысл существования двоичных куч). Является ли increase_keyнеобходимая операция для этого типа данных, то есть для его правильного использования?
Как вы видите, мой угол - все о определениях. На самом деле я не даю ответ на ваши вопросы, просто некоторые указатели, поэтому улучшения приветствуются.