I'm working on an assignment for one of my courses, and one question asks to show that the decrease-key operation, for a pairing heap, takes O(1) time.
Obviously, if you have a pointer to the key you want to decrease, then the operation will take O(1) time (just delete link, change key value, then merge).
However, no where in the assignment does it say that we are given a pointer to the key. If we're not given a pointer, then there is no way decrease-key would take O(1) time (you'd have to look for the key in the heap first, and this doesn't take constant time). I looked at literature, and all say that decrease key takes O(logn) time.
Am I missing something here?