This is a Java Program to Implement Ternary Search Algorithm. A ternary search algorithm is a technique in computer science for finding the minimum or maximum of an increasing or decreasing function. A ternary search determines either that the minimum or maximum cannot be in the first third of the domain or that it cannot be in the last third of the domain, then repeats on the remaining two-thirds. A ternary search is an example of a divide and conquer algorithm.
Here is the source code of the Java Program to Implement Ternary Search Algorithm. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/**
** Java Program to Implement Ternary Search Algorithm
**/
import java.util.Scanner;
/** Class TernarySearch **/
public class TernarySearch
{
/** call function **/
public static int ternarySearch (int[] A, int value)
{
return ternarySearch(A, value, 0, A.length - 1);
}
/** TernarySearch function **/
public static int ternarySearch (int[] A, int value, int start, int end)
{
if (start > end)
return -1;
/** First boundary: add 1/3 of length to start **/
int mid1 = start + (end-start) / 3;
/** Second boundary: add 2/3 of length to start **/
int mid2 = start + 2*(end-start) / 3;
if (A[mid1] == value)
return mid1;
else if (A[mid2] == value)
return mid2;
/** Search 1st third **/
else if (value < A[mid1])
return ternarySearch (A, value, start, mid1-1);
/** Search 3rd third **/
else if (value > A[mid2])
return ternarySearch (A, value, mid2+1, end);
/** Search middle third **/
else
return ternarySearch (A, value, mid1,mid2);
}
/** Main method **/
public static void main(String[] args)
{
Scanner scan = new Scanner( System.in );
System.out.println("Ternary Search Test\n");
int n, i;
/** Accept number of elements **/
System.out.println("Enter number of integer elements");
n = scan.nextInt();
/** Create integer array on n elements **/
int arr[] = new int[ n ];
/** Accept elements **/
System.out.println("\nEnter "+ n +" sorted integer elements");
for (i = 0; i < n; i++)
arr[i] = scan.nextInt();
System.out.println("\nEnter element to search for : ");
int key = scan.nextInt();
int result = ternarySearch(arr, key);
if (result == -1)
System.out.println("\n"+ key +" element not found");
else
System.out.println("\n"+ key +" element found at position "+ result);
}
}
Ternary Search Test Enter number of integer elements 10 Enter 10 sorted integer elements 2 5 15 24 31 47 59 61 79 97 Enter element to search for : 24 24 element found at position 3
Related posts:
Java Program to Implement the One Time Pad Algorithm
Hướng dẫn Java Design Pattern – Singleton
Java Program to Implement Fermat Factorization Algorithm
Java Program to Check whether Directed Graph is Connected using BFS
StringBuilder vs StringBuffer in Java
Java Program to Show the Duality Transformation of Line and Point
Java Program to Implement an Algorithm to Find the Global min Cut in a Graph
Database Migrations with Flyway
Spring Boot - Creating Docker Image
Java Program to Implement Knapsack Algorithm
Check if there is mail waiting
List Interface trong Java
Java Program to Compare Binary and Sequential Search
Java Program to Implement Ternary Heap
How to Read a Large File Efficiently with Java
Java Program to Perform Partial Key Search in a K-D Tree
Compact Strings in Java 9
Java Program to Check if a Point d lies Inside or Outside a Circle Defined by Points a, b, c in a Pl...
An Introduction to ThreadLocal in Java
Guide to the Java Clock Class
Converting a Stack Trace to a String in Java
Hướng dẫn Java Design Pattern – MVC
Recommended Package Structure of a Spring Boot Project
Java Program to Implement HashSet API
A Guide to the Java ExecutorService
How to Change the Default Port in Spring Boot
Spring @Primary Annotation
So sánh HashMap và Hashtable trong Java
Generate Spring Boot REST Client with Swagger
Java – Write a Reader to File
Java – Write an InputStream to a File
Java Streams vs Vavr Streams