This Java program is to Implement Suffix arrayIn computer science, a suffix array is a sorted array of all suffixes of a string. It is a simple, yet powerful data structure which is used, among others, in full text indices, data compression algorithms and within the field of bioinformatics.
Here is the source code of the Java program to implement suffix array. The Java program is successfully compiled and run on a Linux system. The program output is also shown below.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class SuffixArray { private String[] text; private int length; private int[] index; private String[] suffix; public SuffixArray(String text) { this.text = new String[text.length()]; for (int i = 0; i < text.length(); i++) { this.text[i] = text.substring(i, i+1); } this.length = text.length(); this.index = new int[length]; for (int i = 0; i < length; i++) { index[i] = i; } suffix = new String[length]; } public void createSuffixArray() { for(int index = 0; index < length; index++) { String text = ""; for (int text_index = index; text_index < length; text_index++) { text+=this.text[text_index]; } suffix[index] = text; } int back; for (int iteration = 1; iteration < length; iteration++) { String key = suffix[iteration]; int keyindex = index[iteration]; for (back = iteration - 1; back >= 0; back--) { if (suffix[back].compareTo(key) > 0) { suffix[back + 1] = suffix[back]; index[back + 1] = index[back]; } else { break; } } suffix[ back + 1 ] = key; index[back + 1 ] = keyindex; } System.out.println("SUFFIX \t INDEX"); for (int iterate = 0; iterate < length; iterate++) { System.out.println(suffix[iterate] + "\t" + index[iterate]); } } public static void main(String...arg)throws IOException { String text = ""; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter the Text String "); text = reader.readLine(); SuffixArray suffixarray = new SuffixArray(text); suffixarray.createSuffixArray(); } }
$javac SuffixArray.java $java SuffixArray Enter the Text String banana SUFFIX INDEX a 5 ana 3 anana 1 banana 0 na 4 nana 2
Related posts:
Converting a List to String in Java
Spring Boot - Twilio
Disable DNS caching
How to Add a Single Element to a Stream
Java Program to Implement Hash Tables with Quadratic Probing
Java Program to implement Priority Queue
Java Program to Find Transpose of a Graph Matrix
Implementing a Binary Tree in Java
Java Program to Check for balanced parenthesis by using Stacks
JUnit5 Programmatic Extension Registration with @RegisterExtension
Implementing a Runnable vs Extending a Thread
Giới thiệu SOAP UI và thực hiện test Web Service
Java Program to Implement Strassen Algorithm
Java Program to Implement Suffix Tree
Comparing Long Values in Java
Java Program to Represent Graph Using Adjacency Matrix
A Guide to JUnit 5 Extensions
Removing all duplicates from a List in Java
Java Program to Perform Stooge Sort
Spring Data Reactive Repositories with MongoDB
Guide to UUID in Java
Java Program to Perform Preorder Recursive Traversal of a Given Binary Tree
How to use the Spring FactoryBean?
The HttpMediaTypeNotAcceptableException in Spring MVC
Java Program to Find kth Smallest Element by the Method of Partitioning the Array
Java Program to Implement Skip List
A Comparison Between Spring and Spring Boot
Exploring the Spring Boot TestRestTemplate
Java Program to Implement Binary Heap
What is a POJO Class?
Java Program to Test Using DFS Whether a Directed Graph is Weakly Connected or Not
Java Program to Find Basis and Dimension of a Matrix