Skip to content

Commit ddcea2c

Browse files
author
phishman3579
committed
Found a problem in the comparator of the Interval Tree
git-svn-id: https://java-algorithms-implementation.googlecode.com/svn/trunk@434 032fbc0f-8cab-eb90-e552-f08422b9a96a
1 parent efb0b63 commit ddcea2c

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/com/jwetherell/algorithms/data_structures/IntervalTree.java

+16
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,17 @@ public class IntervalTree<O extends Object> {
2828
*/
2929
@Override
3030
public int compare(IntervalData<?> arg0, IntervalData<?> arg1) {
31+
// Compare start first
3132
if (arg0.start < arg1.start)
3233
return -1;
3334
if (arg1.start < arg0.start)
3435
return 1;
36+
// Then end
37+
if (arg0.end < arg1.end)
38+
return -1;
39+
if (arg1.end < arg0.end)
40+
return 1;
41+
// if they have the same start and end they must be equal
3542
return 0;
3643
}
3744
};
@@ -43,10 +50,17 @@ public int compare(IntervalData<?> arg0, IntervalData<?> arg1) {
4350
*/
4451
@Override
4552
public int compare(IntervalData<?> arg0, IntervalData<?> arg1) {
53+
// Compare end first
4654
if (arg0.end < arg1.end)
4755
return -1;
4856
if (arg1.end < arg0.end)
4957
return 1;
58+
// Then start
59+
if (arg0.start < arg1.start)
60+
return -1;
61+
if (arg1.start < arg0.start)
62+
return 1;
63+
// if they have the same start and end they must be equal
5064
return 0;
5165
}
5266
};
@@ -68,10 +82,12 @@ protected static final <O extends Object> Interval<O> createFromList(List<Interv
6882
Interval<O> newInterval = new Interval<O>();
6983
int half = intervals.size() / 2;
7084
IntervalData<O> middle = intervals.get(half);
85+
System.out.println(middle);
7186
newInterval.center = ((middle.start + middle.end) / 2);
7287
List<IntervalData<O>> leftIntervals = new ArrayList<IntervalData<O>>();
7388
List<IntervalData<O>> rightIntervals = new ArrayList<IntervalData<O>>();
7489
for (IntervalData<O> interval : intervals) {
90+
System.out.println(interval);
7591
if (interval.end < newInterval.center) {
7692
leftIntervals.add(interval);
7793
} else if (interval.start > newInterval.center) {

0 commit comments

Comments
 (0)