From 68e4bce538ad0d5120b448dd6aa107b453c103b4 Mon Sep 17 00:00:00 2001 From: mitj500 <115896953+mitj500@users.noreply.github.com> Date: Tue, 31 Oct 2023 23:08:59 +0530 Subject: [PATCH] Create jump.py --- Python/jump.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Python/jump.py diff --git a/Python/jump.py b/Python/jump.py new file mode 100644 index 00000000..f92ad393 --- /dev/null +++ b/Python/jump.py @@ -0,0 +1,46 @@ +# Python3 code to implement Jump Search +import math + +def jumpSearch( arr , x , n ): + + # Finding block size to be jumped + step = math.sqrt(n) + + # Finding the block where element is + # present (if it is present) + prev = 0 + while arr[int(min(step, n)-1)] < x: + prev = step + step += math.sqrt(n) + if prev >= n: + return -1 + + # Doing a linear search for x in + # block beginning with prev. + while arr[int(prev)] < x: + prev += 1 + + # If we reached next block or end + # of array, element is not present. + if prev == min(step, n): + return -1 + + # If element is found + if arr[int(prev)] == x: + return prev + + return -1 + +# Driver code to test function +arr = [ 0, 1, 1, 2, 3, 5, 8, 13, 21, + 34, 55, 89, 144, 233, 377, 610 ] +x = 55 +n = len(arr) + +# Find the index of 'x' using Jump Search +index = jumpSearch(arr, x, n) + +# Print the index where 'x' is located +print("Number" , x, "is at index" ,"%.0f"%index) + +# This code is contributed by "Sharad_Bhardwaj".