From f9d737f3390ff16a712a0195ac6beca4adf160bc Mon Sep 17 00:00:00 2001 From: Amal Bijoy Date: Tue, 7 Apr 2026 11:38:35 +0530 Subject: [PATCH] Use long arithmetic for interpolation position calculation --- Searching-algorithms/Interpolationsearch.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Searching-algorithms/Interpolationsearch.java b/Searching-algorithms/Interpolationsearch.java index cb12f1b..644e637 100644 --- a/Searching-algorithms/Interpolationsearch.java +++ b/Searching-algorithms/Interpolationsearch.java @@ -56,7 +56,13 @@ public static int interpolationSearch(int arr[], int lo, int hi, int x) { return lo; return -1; } - pos = lo + ((hi - lo) * (x - arr[lo])) / (arr[hi] - arr[lo]); + long numerator = (long) (hi - lo) * (x - arr[lo]); + long denominator = (long) (arr[hi] - arr[lo]); + long posLong = lo + (numerator / denominator); + if (posLong < lo || posLong > hi) { + return -1; + } + pos = (int) posLong; if (arr[pos] == x) return pos; if (arr[pos] < x)