Sorting distinct integers using improved in-place associative sort
  In-place associative integer sorting technique was proposed for integer lists which requires only constant amount of additional memory replacing bucket sort, distribution counting sort and address calculation sort family of algorithms. Afterwards, the technique was further improved and an in-place sorting algorithm is proposed where n integers S[0...n-1] each in the range [0, n-1] are sorted exactly in O(n) time while the complexity of the former technique was the recursion T(n) = T(n/2) + O(n) yielding T(n) = O(n).   The technique was specialized with two variants one for read-only distinct integer keys and the other for modifiable distinct integers, as well. Assuming w is the fixed word length, the variant for modifiable distinct integers was capable of sorting n distinct integers S[0...n-1] each in the range [0, m-1] in exactly O(n) time if m < (w-logn)n. Otherwise, it sort in O(n + m/(w-logn)) time for the worst, O(m/(w-logn)) time for the average (uniformly distributed keys) and O(n) time for the best case using only O(1) extra space.   In this study, the variant for modifiable distinct integers is improved and an algorithm is obtained that sorts n distinct integers S[0...n-1] each in the range [0, m-1] in exactly O(n) time if m < (w-1)n. Otherwise, it sort in O(n + m/(w-1)) time for the worst, O(m/(w-1)) time for the average (uniformly distributed keys) and O(n) time for the best case using only O(1) extra space. 
A. Emre Cetin
cs.DS