Yeah it was discussed quite thoroughly so I thought the old thread would be relevant.
I actually use both methods, but the latter (slower) method is used for when the world is already instantiated.
I.e:
There are two situations we have to distinguish:
1. You have to add one or a handful of items to a list, which must be ordered.
In that case, use binarySearch(...) to insert the item(s)
2. You have to add more than a handful of items to a list, which must be ordered.
In that case, add the N items to the end of the list, and sort(...) the entire list