Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadData.java @ 8127:8c5eb9edc3f3
Another fix for find stations in sediment load.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Mon, 25 Aug 2014 17:14:49 +0200 |
parents | 4a2ef6895557 |
children | 65a938e4d92f |
comparison
equal
deleted
inserted
replaced
8126:353f93d5d9f7 | 8127:8c5eb9edc3f3 |
---|---|
389 private void recursiveFindStations( | 389 private void recursiveFindStations( |
390 double a, double b, | 390 double a, double b, |
391 int lo, int hi, | 391 int lo, int hi, |
392 Visitor visitor | 392 Visitor visitor |
393 ) { | 393 ) { |
394 while (lo <= hi) { | 394 if (lo > hi) { |
395 int mid = (lo+hi)/2; | 395 return; |
396 Station st = stations[mid]; | 396 } |
397 double station = st.getStation(); | 397 int mid = (lo+hi)/2; |
398 if (station < a) { | 398 Station st = stations[mid]; |
399 hi = mid-1; | 399 double station = st.getStation(); |
400 } else if (station > b) { | 400 if (station < a) { |
401 lo = mid+1; | 401 recursiveFindStations(a, b, mid+1, hi) |
402 } else { | 402 } else if (station > b) { |
403 recursiveFindStations(a, b, lo, mid-1, visitor); | 403 recursiveFindStations(a, b, lo, mid-1) |
404 visitor.visit(st); | 404 } else { |
405 lo = mid+1; | 405 recursiveFindStations(a, b, lo, mid-1, visitor); |
406 } | 406 visitor.visit(st); |
407 recursiveFindStations(a, b, mid+1, hi, visitor); | |
407 } | 408 } |
408 } | 409 } |
409 | 410 |
410 public static final Comparator<Load> LOAD_ID_CMP = new Comparator<Load>() { | 411 public static final Comparator<Load> LOAD_ID_CMP = new Comparator<Load>() { |
411 @Override | 412 @Override |