kopia lustrzana https://github.com/animator/learn-python
Update Ternary Search.py
rodzic
6b63ffea19
commit
86f126fba9
|
@ -1,50 +1,32 @@
|
|||
import math as mt
|
||||
|
||||
def ternarySearch(l, r, key, ar):
|
||||
|
||||
if (r >= l):
|
||||
|
||||
mid1 = l + (r - l) //3
|
||||
mid2 = r - (r - l) //3
|
||||
|
||||
if (ar[mid1] == key):
|
||||
return mid1
|
||||
|
||||
if (ar[mid2] == key):
|
||||
return mid2
|
||||
|
||||
if (key < ar[mid1]):
|
||||
|
||||
return ternarySearch(l, mid1 - 1, key, ar)
|
||||
|
||||
elif (key > ar[mid2]):
|
||||
|
||||
return ternarySearch(mid2 + 1, r, key, ar)
|
||||
|
||||
else:
|
||||
|
||||
return ternarySearch(mid1 + 1,
|
||||
mid2 - 1, key, ar)
|
||||
return ternarySearch(mid1 + 1, mid2 - 1, key, ar)
|
||||
|
||||
return -1
|
||||
|
||||
l, r, p = 0, 9, 5
|
||||
|
||||
|
||||
l, r = 0, 9
|
||||
ar = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
|
||||
|
||||
l = 0
|
||||
|
||||
r = 9
|
||||
|
||||
key = 5
|
||||
|
||||
p = ternarySearch(l, r, key, ar)
|
||||
|
||||
print("Index of", key, "is", p)
|
||||
|
||||
key = 50
|
||||
|
||||
p = ternarySearch(l, r, key, ar)
|
||||
|
||||
print("Index of", key, "is", p)
|
||||
|
|
Ładowanie…
Reference in New Issue