Skip to content

Commit b6f6c75

Browse files
committed
JumpSearch.py finally approved
1 parent f848a20 commit b6f6c75

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import math
2+
3+
def search_ordered(ordered_list, term):
4+
5+
for i, item in enumerate(ordered_list):
6+
if item == term:
7+
return i
8+
elif item > term:
9+
return -1
10+
return -1
11+
12+
13+
def jump_search(ordered_list, item):
14+
15+
list_size = len(ordered_list)
16+
block_size = int(math.sqrt(list_size))
17+
i = 0
18+
19+
while i != len(ordered_list) - 1 and ordered_list[i] <= item:
20+
if i + block_size > len(ordered_list):
21+
block_size = len(ordered_list) - i
22+
block_list = ordered_list[i:i+block_size]
23+
j = search_ordered(block_list, item)
24+
if j == -1:
25+
print('Element not found')
26+
return
27+
elif ordered_list[i + block_size] == item:
28+
return i+blocksize-1
29+
elif ordered_list [i + block_size] > item:
30+
block_array = ordered_list[i : i+ block_size - 1]
31+
j = search_ordered(block_array, item)
32+
if j == -1:
33+
print("Element not found")
34+
return
35+
return i + j
36+
i += block_size

0 commit comments

Comments
 (0)