1. A method comprising: splitting an input array into multiple sub-arrays across multiple processing elements; merging the multiple sub-arrays into multiple vectors, wherein each of the multiple vectors contains one element from each of the multiple sub-arrays; sorting the multiple vectors by comparing and swapping one or more vector elements among the multiple vectors, wherein said comparing and said swapping comprises performing a set of compare-swap instructions on a first set of one or more registers, and wherein the number of compare-swap instructions in the set of compare-swap instructions is represented as NlogN+1, wherein N is a predetermined value; and writing-back results of said sorting on a second set of one or more registers; wherein said splitting, said merging, said sorting, and said writing-back are carried out by at least one computing device.