Can someone explain me the comparisons of which one is better and their time and space complexity and anything important that you think that is worth knowing. I know how 2S1D and 2S2D work.
I'm assuming that "S" means source and "D" means destination, so you're comparing 2 source 1 destination versus 2 source 2 destination, and ordinary merge sort with polyphase merge sort. The wiki article includes these cases:
https://en.wikipedia.org/wiki/Polyphase_merge_sort
Note that the wiki article is focused on external sorts, where compare overhead is ignored and only movement of data is considered.
For an internal ordinary merge sort, with random access memory, a 2S-2D sort only requires two arrays, as the 2 sources can be even and odd runs within a single source array, and the output can also be to a single array. For an internal polyphase merge sort, you need at least 3 arrays (2S-1D). On my system, even though 3 array polyphase merge sort does about 5% more moves than 2 array ordinary merge sort, polyphase ends up about 5% faster, probably due to cache issues.
Trivia - for a 3 stack (LIFO only interface version of 2S-1D), polyphase merge sort is fastest.