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:
New Features in Java 15
Java Program to Implement Caesar Cypher
Serialization và Deserialization trong java
Spring Boot - Hystrix
Deque và ArrayDeque trong Java
Java Program to Implement the Vigenere Cypher
Service Registration with Eureka
Java Program to Perform Naive String Matching
Java Program to Implement Disjoint Set Data Structure
Java Program to Check the Connectivity of Graph Using BFS
Hướng dẫn Java Design Pattern – Builder
Java Program to Implement Heap’s Algorithm for Permutation of N Numbers
Collection trong java
Java – Rename or Move a File
A Quick JUnit vs TestNG Comparison
A Custom Media Type for a Spring REST API
Java Program to Implement Segment Tree
Apache Camel with Spring Boot
Java Program to Implement Shoelace Algorithm
Java Program to Perform Right Rotation on a Binary Search Tree
Spring Boot Gradle Plugin
ArrayList trong java
Hướng dẫn Java Design Pattern – Observer
Auditing with JPA, Hibernate, and Spring Data JPA
Sử dụng CountDownLatch trong Java
Java Program to Check Whether a Directed Graph Contains a Eulerian Path
Hướng dẫn Java Design Pattern – Object Pool
Java Program to Find a Good Feedback Vertex Set
Finding the Differences Between Two Lists in Java
Hướng dẫn sử dụng luồng vào ra ký tự trong Java
Java Program to Implement Binary Heap
OAuth2.0 and Dynamic Client Registration