Skip to content

Commit 0e7c85c

Browse files
Update
1 parent 5f56e6a commit 0e7c85c

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

Chapter10/jump_search.py

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

0 commit comments

Comments
 (0)