Update Ternary Search.py

pull/343/head
Kavin18 2024-05-16 17:38:58 +05:30 zatwierdzone przez GitHub
rodzic 6b63ffea19
commit 86f126fba9
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
1 zmienionych plików z 2 dodań i 20 usunięć

Wyświetl plik

@ -1,50 +1,32 @@
import math as mt import math as mt
def ternarySearch(l, r, key, ar): def ternarySearch(l, r, key, ar):
if (r >= l): if (r >= l):
mid1 = l + (r - l) //3 mid1 = l + (r - l) //3
mid2 = r - (r - l) //3 mid2 = r - (r - l) //3
if (ar[mid1] == key): if (ar[mid1] == key):
return mid1 return mid1
if (ar[mid2] == key): if (ar[mid2] == key):
return mid2 return mid2
if (key < ar[mid1]): if (key < ar[mid1]):
return ternarySearch(l, mid1 - 1, key, ar) return ternarySearch(l, mid1 - 1, key, ar)
elif (key > ar[mid2]): elif (key > ar[mid2]):
return ternarySearch(mid2 + 1, r, key, ar) return ternarySearch(mid2 + 1, r, key, ar)
else: else:
return ternarySearch(mid1 + 1, mid2 - 1, key, ar)
return ternarySearch(mid1 + 1,
mid2 - 1, key, ar)
return -1 return -1
l, r, p = 0, 9, 5 l, r = 0, 9
ar = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ar = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
l = 0 l = 0
r = 9 r = 9
key = 5 key = 5
p = ternarySearch(l, r, key, ar) p = ternarySearch(l, r, key, ar)
print("Index of", key, "is", p) print("Index of", key, "is", p)
key = 50 key = 50
p = ternarySearch(l, r, key, ar) p = ternarySearch(l, r, key, ar)
print("Index of", key, "is", p) print("Index of", key, "is", p)