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:
Java Program to Implement Word Wrap Problem
Guide to the Synchronized Keyword in Java
Spring Boot Application as a Service
Java toString() Method
Generate Spring Boot REST Client with Swagger
Working With Maps Using Streams
Show Hibernate/JPA SQL Statements from Spring Boot
Java Program to Generate Date Between Given Range
Default Password Encoder in Spring Security 5
Java Program to Implement Sorted Vector
Java Program to Implement Jarvis Algorithm
Lập trình đa luồng với Callable và Future trong Java
Java – Byte Array to Reader
The Registration Process With Spring Security
Java Program to Implement the Vigenere Cypher
Introduction to PCollections
Instance Profile Credentials using Spring Cloud
Anonymous Classes in Java
Giới thiệu HATEOAS
The XOR Operator in Java
Spring Boot Configuration with Jasypt
Java Program to Implement Shoelace Algorithm
Validations for Enum Types
Automatic Property Expansion with Spring Boot
Converting String to Stream of chars
Java Program to Check whether Directed Graph is Connected using DFS
Spring REST API with Protocol Buffers
Tạo ứng dụng Java RESTful Client không sử dụng 3rd party libraries
Hướng dẫn Java Design Pattern – MVC
SOAP Web service: Upload và Download file sử dụng MTOM trong JAX-WS
Java 8 Collectors toMap
Convert Time to Milliseconds in Java