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:
So sánh ArrayList và LinkedList trong Java
Introduction to Thread Pools in Java
Abstract class và Interface trong Java
Java Program to Solve Knapsack Problem Using Dynamic Programming
Java Program to Generate All Pairs of Subsets Whose Union Make the Set
Handling URL Encoded Form Data in Spring REST
Lập trình hướng đối tượng (OOPs) trong java
Using Custom Banners in Spring Boot
Giới thiệu JDBC Connection Pool
Java program to Implement Tree Set
Weak References in Java
Creating a Generic Array in Java
Hướng dẫn Java Design Pattern – Singleton
Object cloning trong java
Java Program to Find Number of Spanning Trees in a Complete Bipartite Graph
Java Program to Implement Naor-Reingold Pseudo Random Function
XML-Based Injection in Spring
Converting a List to String in Java
Kiểu dữ liệu Ngày Giờ (Date Time) trong java
Java Program to Implement Double Ended Queue
Hướng dẫn Java Design Pattern – Template Method
JUnit5 @RunWith
Java Program to Generate Random Hexadecimal Byte
Collect a Java Stream to an Immutable Collection
Form Validation with AngularJS and Spring MVC
Checking for Empty or Blank Strings in Java
Java Program to Implement Stack using Linked List
Java Program to Implement Vector API
Spring Boot Configuration with Jasypt
Transaction Propagation and Isolation in Spring @Transactional
Spring RequestMapping
Converting Strings to Enums in Java