Skip to content

Commit 837691d

Browse files
authored
Merge pull request #172 from akg1997/master
Create TernarySearch.java
2 parents 3cba6b0 + 8c17ec4 commit 837691d

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

searching/TernarySearch.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
class TernarySearch {
2+
3+
static int ternarySearch(int l, int r, int key, int ar[]) {
4+
if (r >= l) {
5+
int mid1 = l + (r - l) / 3;
6+
int mid2 = r - (r - l) / 3;
7+
8+
if (ar[mid1] == key) {
9+
return mid1;
10+
}
11+
if (ar[mid2] == key) {
12+
return mid2;
13+
}
14+
15+
if (key < ar[mid1]) {
16+
return ternarySearch(l, mid1 - 1, key, ar);
17+
}
18+
else if (key > ar[mid2]) {
19+
return ternarySearch(mid2 + 1, r, key, ar);
20+
}
21+
else {
22+
return ternarySearch(mid1 + 1, mid2 - 1, key, ar);
23+
}
24+
}
25+
26+
return -1;
27+
}
28+
29+
public static void main(String args[]) {
30+
int l, r, p, key;
31+
32+
int ar[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
33+
34+
l = 0;
35+
r = 9;
36+
key = 5;
37+
38+
p = ternarySearch(l, r, key, ar);
39+
System.out.println("Index of " + key + " is " + p);
40+
key = 50;
41+
p = ternarySearch(l, r, key, ar);
42+
System.out.println("Index of " + key + " is " + p);
43+
}
44+
}

0 commit comments

Comments
 (0)