  The smooth heap and the closely related slim heap are recently invented
self-adjusting implementations of the heap (priority queue) data structure. We
analyze the efficiency of these data structures. We obtain the following
amortized bounds on the time per operation: $O(1)$ for make-heap, insert,
find-min, and meld; $O(\log\log n)$ for decrease-key; and $O(\log n)$ for
delete-min and delete, where $n$ is the current number of items in the heap.
These bounds are tight not only for smooth and slim heaps but for any heap
implementation in Iacono and \"{O}zkan's pure heap model, intended to capture
all possible "self-adjusting" heap implementations. Slim and smooth heaps are
the first known data structures to match Iacono and \"{O}zkan's lower bounds
and to satisfy the constraints of their model. Our analysis builds on Pettie's
insights into the efficiency of pairing heaps, a classical self-adjusting heap
implementation.
