title: Efficient Algorithm for building an AVL Tree from large collection
body: <p>I have a large <a href="http://en.wikipedia.org/wiki/AVL_tree" rel="nofollow noreferrer">AVL Tree</a> which I build some times during program from an unsorted collection (it will be used to insert/remove items later). </p>
  
  <p>Is there any better algorithm than using the simple insert on each item?  Will it be more efficient to sort the collection first and then try to build it differently?</p>
  
  <p>Profiling of my application tells me that this AVL building is a hotspot location.</p>