From 893fae6d59252857f5df79a1a12e5726f0f67b06 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Sun, 25 Aug 2024 13:51:43 +0200 Subject: [PATCH] (index) Optimize DocumentSpan.countIntersections --- .../nu/marginalia/index/forward/spans/DocumentSpan.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/code/index/index-forward/java/nu/marginalia/index/forward/spans/DocumentSpan.java b/code/index/index-forward/java/nu/marginalia/index/forward/spans/DocumentSpan.java index 26245c49..b703a77e 100644 --- a/code/index/index-forward/java/nu/marginalia/index/forward/spans/DocumentSpan.java +++ b/code/index/index-forward/java/nu/marginalia/index/forward/spans/DocumentSpan.java @@ -23,10 +23,15 @@ public class DocumentSpan { } int cnt = 0; + int seis = 0; + for (int pi = 0; pi < positions.size(); pi++) { - for (int sei = 0; sei < startsEnds.size(); sei ++) { - if (startsEnds.getInt(sei) > positions.getInt(pi)) { + int position = positions.getInt(pi); + + for (int sei = seis; sei < startsEnds.size(); sei ++) { + if (startsEnds.getInt(sei) > position) { cnt += sei % 2; + seis = Math.max(seis, sei - 1); break; } }