From afea2f2f84608d8cb18c4bf5bbb8489530a1bdbd Mon Sep 17 00:00:00 2001 From: Aaqil Shihab Date: Sat, 22 Oct 2022 21:52:29 +0530 Subject: [PATCH] Added jump search --- Search Algorithms/jump_search.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Search Algorithms/jump_search.py diff --git a/Search Algorithms/jump_search.py b/Search Algorithms/jump_search.py new file mode 100644 index 0000000..82dfc48 --- /dev/null +++ b/Search Algorithms/jump_search.py @@ -0,0 +1,30 @@ +import math + +def linear_search(B, item, loc): + print("\t Entering Linear Search") + i = 0 + + while i != len(B): + if B[i] == item: + return loc+i + i += 1 + return -1 + +def jump_search(A, item): + print("Entering Jump Search") + n = len(A) + m = int(math.sqrt(n)) + i = 0 + + while i != len(A)-1 and A[i] < item: + print("Processing Block - {}".format(A[i: i+m])) + if A[i+m-1] == item: + return i+m-1 + elif A[i+m-1] > item: + B = A[i: i+m-1] + return linear_search(B, item, i) + i += m + + B = A[i:i+m] + print("Processing Block - {}".format(B)) + return linear_search(B, item, i) \ No newline at end of file