Notes: I\'ve thought about Radix sort, bucket sort, counting sort.
Is there anyway to achieve big O(n)?
I assume, you mean you want to achieve a small O(n); then bucket sort would be fastest. In fact, since you know the range of the integers, then using bucket sort simply becomes a problem of counting the occurrences of the numbers which can be done in O(n), i.e. linear time.
The so-called counting sort is simply a special case of bucket sort.