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:
Quick Intro to Spring Cloud Configuration
Spring Security Basic Authentication
Java InputStream to String
Java Program to find the peak element of an array using Binary Search approach
A Custom Media Type for a Spring REST API
Hamcrest Collections Cookbook
Guide to Java 8’s Collectors
Java Program to Represent Graph Using Incidence List
Tổng quan về ngôn ngữ lập trình java
Introduction to Spring Cloud CLI
Java Program to Implement TreeSet API
Map Serialization and Deserialization with Jackson
Java Program to Implement String Matching Using Vectors
@Lookup Annotation in Spring
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
How to Get All Dates Between Two Dates?
Introduction to Eclipse Collections
@Before vs @BeforeClass vs @BeforeEach vs @BeforeAll
Java Map With Case-Insensitive Keys
Java Program to Perform Left Rotation on a Binary Search Tree
Java Program to Implement the RSA Algorithm
The Basics of Java Security
Lập trình đa luồng với CompletableFuture trong Java 8
Spring MVC and the @ModelAttribute Annotation
Java Program to Implement AA Tree
Java Program to Construct K-D Tree for 2 Dimensional Data
Automatic Property Expansion with Spring Boot
Java Program to Check Whether an Undirected Graph Contains a Eulerian Cycle
Tìm hiểu về xác thực và phân quyền trong ứng dụng
Spring Boot Change Context Path
Java 8 Stream findFirst() vs. findAny()
Java Program to Find the Minimum value of Binary Search Tree