The insertion algorithm