Fastest data structure for a priority queue

Welcome. As a replacement for

left = searchsortedfirst(pq.times, t)

you can use (same timing in Julia)

    len = length(pq)
    left = 1
    right = len
    while left <= right
        mid = (left + right) >> 1
        if pq[mid][1] > t
            right = mid - 1
        else
            left = mid + 1
        end
    end
    insert!(pq, left, (t, d))
1 Like