@avadh
Merge sort has a time complexity of O(n log n)...
It's easier to confirm this by closely inspecting the iterative implementation you've described. The algorithm scans the list log(n) times.
In your example, it merges every pair, then every four, then every eight, then all sixteen, bringing it to a total of 4 = log2(16) iterations.
Since the list itself is length n, the total time complexity is in the order of n log(n), which is validated by calculating that 64 elements in total are iterated by scanning a list of 16 items 4 times….
The fault in your analysis is incorrectly assuming that every merge is performed with a time complexity of O(n). The time complexity of each merge in a merge sort cannot trivially be represented in terms of n...