I was using the built-in sort function of Matlab:
[temp, Idx] = sort(M,2);
I would like to have the sorted index of each row of M, which is a matrix of size > 50k.
I searched hard but did not find anything.. It would be greatly appreciated if you have any comments!
To get a sense of how much room for improvement you have, I would suggest writing a test program in C and use qsort or in C++ and user sort and carefully time it on 7000 inputs of size 7000 (or whatever setup you have in Matlab).
I’m going to give you my estimate: probably Matlab’s sort runs (on properly vectorized code, like yours) as fast as C++, and you’re just seeing the effect of running an algorithm that takes O(n^2 log n). It is reported in Matlab’s marketing material that its sort function was faster than C’s qsort, but take it with a grain of salt.