My version of the algorithm always does fewer iterations, unless no items are swapped at all.
If all the numbers in the list are random, it does about half as many iterations as the other version.
But in the worst case scenario, where initially all elements are in reverse order, I don't think there is any difference in efficiency. You would still have to repeatedly go forward and backward through the list to get all elements in the correct order.
Even in this case, it does fewer iterations. The difference is 1 less than the number of items in the list.