timsort (original) (raw)
Martin Buchholz martinrb at google.com
Tue Jul 7 16:33:46 UTC 2009
- Previous message: timsort
- Next message: timsort
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Jul 7, 2009 at 08:57, Christopher Hegarty -Sun Microsystems Ireland<Christopher.Hegarty at sun.com> wrote:
Martin Buchholz wrote:
On Tue, Jul 7, 2009 at 07:35, Christopher Hegarty -Sun Microsystems Ireland
2) With the addition of @throws IllegalArgumentException, this condition cannot be met with the old merge sort right, i.e. running with -Djava.util.Arrays.useLegacyMergeSort=true. So we're saying that all bets are off when running with this property set? No. Please re-read the @throws IllegalArgumentException. It is carefully worded to make no promises at all. All bets are off - period. OK great. But just to clarify, what exactly does "if the natural order of the array elements is found to violate the Comparable contract" mean? "natural order" is defined in the Comparable javadoc. Sorry, I still don't see how this @throws can be a no-op. Is it not possible to craft an array of Comparables that violates the Comparable contract and therefore provoke the sort method to throw IAE?
It is not feasible to check whether a particular implementation of Comparable violates the Comparable contract - there are too many ways the contract can be violated, and checking may be too expensive.
* @throws IllegalArgumentException if the natural order of the array
* elements is found to violate the {@link Comparable} contract
So the proposed spec does not and cannot require any exception to be thrown. What is proposed is if the implementation happens to check for violations and if it chooses to throw an exception, then IAE is the exception type that will be used.
Perhaps someone could come up with clearer wording than "is found to violate"?
Martin
-Chris.
http://download.java.net/jdk7/docs/api/java/lang/Comparable.html We could use @linkplain to the Comparable spec, as elsewhere in java.util. Martin
- Previous message: timsort
- Next message: timsort
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]