2分ヒープ(BinaryHeap)は、
優先度つきキュー (順位キュー、priority queue)や、
ダイクストラ法 (Dijkstra's Algorithm)で使っているけど、

ここで、JavaScript の配列を使って、2分ヒープを作っている。
http://jsdo.it/michihito/bGH5

PushObj, PopObj を見たけど、再帰は使っていない!
追加・削除の計算量はともに、O(log n) です

確か以前も、このスレで、このアルゴリズムに改良点があるとか、ピラフに指摘されたはず