Create Fibonacci Search.py

pull/343/head
Kavin18 2024-05-16 17:23:14 +05:30 zatwierdzone przez GitHub
rodzic 83dbbacd6f
commit 38d6251b2b
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
1 zmienionych plików z 49 dodań i 0 usunięć

Wyświetl plik

@ -0,0 +1,49 @@
from bisect import bisect_left
def fibMonaccianSearch(arr, x, n):
fibMMm2 = 0
fibMMm1 = 1
fibM = fibMMm2 + fibMMm1
while (fibM < n):
fibMMm2 = fibMMm1
fibMMm1 = fibM
fibM = fibMMm2 + fibMMm1
offset = -1
while (fibM > 1):
i = min(offset+fibMMm2, n-1)
if (arr[i] < x):
fibM = fibMMm1
fibMMm1 = fibMMm2
fibMMm2 = fibM - fibMMm1
offset = i
elif (arr[i] > x):
fibM = fibMMm2
fibMMm1 = fibMMm1 - fibMMm2
fibMMm2 = fibM - fibMMm1
else:
return i
if(fibMMm1 and arr[n-1] == x):
return n-1
return -1
arr = list(map(int,input("Enter the array elements: ").split()))
n = len(arr)
x = int(input("enter the number to search: "))
ind = fibMonaccianSearch(arr, x, n)
if ind>=0:
print("Found at index:",ind)
else:
print(x,"isn't present in the array");