What the insertion sort + binary search algorithm provides is reducing the number of catching the smallest element , it becomes O(log(n)) instead of O(n), but the shifting operations are still the same O(n) for every iteration. Hence, the total time complexity is O(n log(n) +nn) , we take the biggest so it is O(n*n ).