(i int)
| 419 | } |
| 420 | |
| 421 | func (h *postHeap) siftDown(i int) { |
| 422 | ch := h.ch |
| 423 | for { |
| 424 | j1 := 2*i + 1 |
| 425 | if j1 >= len(ch) { |
| 426 | break |
| 427 | } |
| 428 | j := j1 |
| 429 | if j2 := j1 + 1; j2 < len(ch) && ch[j1].e >= ch[j2].e { |
| 430 | j = j2 |
| 431 | } |
| 432 | if ch[i].e < ch[j].e { |
| 433 | break |
| 434 | } |
| 435 | ch[i], ch[j] = ch[j], ch[i] |
| 436 | i = j |
| 437 | } |
| 438 | } |
| 439 | |
| 440 | func (h *postHeap) siftUp(j int) { |
| 441 | ch := h.ch |