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:
A Guide to JPA with Spring
Jackson – Change Name of Field
Java Program to Implement Adjacency Matrix
Java Program to Use Above Below Primitive to Test Whether Two Lines Intersect
Quick Guide to Spring MVC with Velocity
The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring 5
OAuth2 Remember Me with Refresh Token
Java Program to Implement Nth Root Algorithm
Java Program to Implement Heap
Java Program to Implement Splay Tree
HttpClient Timeout
Java Program to Perform Deletion in a BST
Jackson – Unmarshall to Collection/Array
Java Program to Implement Pairing Heap
Intro to the Jackson ObjectMapper
Java Program to Implement LinkedList API
Iterating over Enum Values in Java
Java Program to Implement Best-First Search
A Guide to the ResourceBundle
Java Program to implement Array Deque
Hướng dẫn Java Design Pattern – Null Object
Java 8 – Powerful Comparison with Lambdas
How to Round a Number to N Decimal Places in Java
Java Program to Implement Expression Tree
Simple Single Sign-On with Spring Security OAuth2
String Processing with Apache Commons Lang 3
Hướng dẫn Java Design Pattern – Proxy
JUnit 5 for Kotlin Developers
Java – Create a File
Introduction to PCollections
Spring Boot Configuration with Jasypt
Converting Between a List and a Set in Java