(original) (raw)
Chris,
1) Should we update the Arrays class description and appropriate sort
� methods to now refer to timsort instead of saying: "The sorting
� algorithm is a modified mergesort...". I know this is not strictly
� necessary, but you must have considered it already, right?
No.� I totally missed it.� Good catch!
�
I propose this prose:
���� \* mergesort that requires far fewer than n lg(n) comparisons when the input
���� \* array is partially sorted, while offering the performance of a traditional
���� \* mergesort when the input array is randomly ordered.� If the input array is
���� \* nearly sorted, the implementation requires approximately n comparisons.
���� \* Temporary storage requirements vary from a small constant for nearly sorted
���� \* input arrays to n/2 object references for randomly ordered input arrays.
���� \*
���� \*
The implementation takes equal advantage of ascending and descending order
���� \* in its input array, and can take advantage of ascending and descending order
���� \* in different parts of the the same input array.� It is well-suited to
���� \* merging two or more sorted arrays: simply concatenate the arrays and sort
���� \* the resulting array.
���� \*
���� \*
The implementation was adapted from Tim Peters's list sort for Python
���� \* (http://svn.python.org/projects/python/trunk/Objects/listsort.txt">
���� \* TimSort).� It uses techiques from Peter McIlroy's "Optimistic Sorting
���� \* and Information Theoretic Complexity",in Proceedings of the Fourth Annual
���� \* ACM-SIAM Symposium on Discrete Algorithms, pp 467-474, January 1993.
There are six methods that could use this prose, four in java.uti.Arrays, and two in java.util.Collections.� Alternatively, the prose could be included in one place, and linked to repeatedly.
����������� Josh