The following is a very simple implementation of a soft heap based on "A simpler implementation and analysis of Chazelle's Soft Heaps" by Haim Kaplan and Uri Zwick; http://www.siam.org/proceedings/soda/2009/SODA09_053_kaplanh.pdf
This code takes a lot of inspiration from the Java implementation by Louis Wasserman available here https://github.com/lowasser/SoftSelect
There are other things at work here, a better description is forthcoming