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:
Server-Sent Events in Spring
Java Program to Perform Postorder Recursive Traversal of a Given Binary Tree
Mockito and JUnit 5 – Using ExtendWith
Java Program to Implement Queue using Linked List
Java Program to Implement Sparse Array
A Guide to JUnit 5
Java Program to Implement the Bin Packing Algorithm
Java Program to Find Nearest Neighbor for Static Data Set
Guide to the Java ArrayList
Spring Boot - Runners
Java Timer
Java Copy Constructor
Java Program to Implement the Alexander Bogomolny’s UnOrdered Permutation Algorithm for Elements Fro...
Đồng bộ hóa các luồng trong Java
How to Replace Many if Statements in Java
Testing in Spring Boot
Check if a String is a Palindrome in Java
Java – Generate Random String
Java Program to Find Strongly Connected Components in Graphs
Merging Streams in Java
The Guide to RestTemplate
Optional trong Java 8
Java Program to Implement Self Balancing Binary Search Tree
Java Program to Check Whether an Undirected Graph Contains a Eulerian Path
Hướng dẫn sử dụng Printing Service trong Java
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Giới thiệu Swagger – Công cụ document cho RESTfull APIs
Apache Commons Collections OrderedMap
Java Program to Check if it is a Sparse Matrix
Spring Boot - Batch Service
Guide to the Java TransferQueue
Introduction to the Java ArrayDeque