I actually implemented this algorithm in C++ this week and was able to understand how the insertion part worked. I don't really want to repeat myself, so I will quote myself instead:

To perform a minimal number of comparisons, we need to take into account the following observation about binary search: the maximal number of comparisons needed to perform a binary search on a sorted sequence is the same when the number of elements is 2^n and when it is 2^(n+1)−1. For example, looking for an element in a sorted sequence of 8 or 15 elements requires the same number of comparisons.

Basically, after having inserted the first pend element in the main chain, the algorithm takes the farthest pend element for which 2 comparisons need to be made: you need 2 comparisons to insert in less than 4 elements, so we take b3 in the paper, because we can insert it in {b1, a1, a2} . Next, we know that b2 < a2 so we can insert a2 in the main chain which will either be {b1, a1} or {b1, a1, b2} , which means that we insert it in a chain of at most 3 elements, so we need at most 2 comparisons to isert it. Next, we need an element that will be insertable with at most 3 comparisons, so it needs to be inserted in a main chain of at most 7 elements: we have b5 < a5 , so we can insert b5 in {b1, a1, b2, a2, a3, b3, a4} which happens to be a main chain of 7 elements, etc...