In java the collections.sort used merge sort algorithm instead of quick sort. But Arrays.sort uses quick sort. ( And i am not sure about above fact but i found this on internet like on website such as CodeRanch if they don't use that algoritjm please tell me)
Now i know average complexity of both algorithm is same. Only fact is quicksort worst is O(n^2) but that's not to common. And we are not concerned with space in today's world so it doesn't matter that merge sort is not in-place algorithm. But we concerned with stability so why we use quick sort for array.sort because its not a stable algorithm. Is it because it only concerned about integer's but i don't think that's a good reason.