[Haskell-cafe] uvector package appendU: memory leak?

wren ng thornton wren at freegeek.org
Tue Mar 31 23:09:29 EDT 2009


Manlio Perillo wrote:
> By the way, about insertWith/alter; from IntMap documentation:
> 
> insertWithKey: O(min(n,W)
> alter: O(log n)
> 
> So, alter is more efficient than insertWithKey?
> And what is that `W` ?

As Claus says it's the maximum (value of Int; number of keys). It's in 
an easily overlooked comment at the top of the IntMap page, last I checked.

As for which is faster, it depends. The O(min(n,W)) stuff is effectively 
linear because n can't exceed W (what would you use for the key?), but 
it's a smart linear that rivals O(log n). Because the values of n are so 
small, what really matters here are the constant factors not the 
asymptotic complexity. Also it depends a lot on what operations you 
really need.

If you're interested in the details, I highly recommend Okasaki&Gill's 
paper[1] where they introduce IntMap. It's eminently readable and gives 
comparative numbers to other datastructures for all the basic operations.

[1] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.37.5452

-- 
Live well,
~wren


More information about the Haskell-Cafe mailing list