diff --git a/Searching algorithms/Ternary Search.py b/Searching algorithms/Ternary Search.py new file mode 100644 index 0000000..b481bb1 --- /dev/null +++ b/Searching algorithms/Ternary Search.py @@ -0,0 +1,50 @@ +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 -1 + +l, r, p = 0, 9, 5 + + +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)