Skip to content

Commit 991f1ac

Browse files
committed
Added Fibonaaci Search
1 parent 1758f8b commit 991f1ac

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
"""
2+
Author : Robin Singh
3+
Implementation of Fibonacci Search Algorithm
4+
"""
5+
def fibonacci(n):
6+
if n < 1:
7+
return 0
8+
elif n==1:
9+
return 1
10+
else:
11+
return fibonacci(n-1)+fibonacci(n-2)
12+
13+
14+
def fibo_search(list,key):
15+
m = 0
16+
while fibonacci(m) < len(list):
17+
m = m+1
18+
19+
20+
offset = -1#Main
21+
22+
while (fibonacci(m)>1):
23+
i = min(offset + fibonacci(m-2),len(list)-1)
24+
25+
if key > list[i]:
26+
m = m-1
27+
offset = i
28+
29+
elif key<list[i]:
30+
m = m-2
31+
32+
else:
33+
34+
return i
35+
36+
if (fibonacci(m - 1) and list[offset + 1] == key): #if m =2 then this case will be executed
37+
return offset + 1
38+
return -1
39+
40+
list = [2,4,6,8,10,23,45,67,89,90,123,345,567,789,900]
41+
key = int(input("Entre Key"))
42+
print("Found at Index",fibo_search(list,key))
43+

0 commit comments

Comments
 (0)