I can't use sorting because I will lose the original indices of the numbers after sorting.
You needn't lose them because [A,J]=SORT(...) will give you the original indices in J. Nevertheless, a more efficient approach than sorting would be to use this FEX subsmission,