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:
Đồng bộ hóa các luồng trong Java
Java Program to Implement Sieve Of Eratosthenes
Error Handling for REST with Spring
Java Program to Generate Random Numbers Using Multiply with Carry Method
Spring Boot Gradle Plugin
Java Program to Represent Graph Using Incidence Matrix
Spring Cloud AWS – EC2
Jackson – JsonMappingException (No serializer found for class)
Lớp HashMap trong Java
More Jackson Annotations
Kết hợp Java Reflection và Java Annotations
Tạo ứng dụng Java RESTful Client với thư viện Retrofit
Programmatic Transaction Management in Spring
Java Optional as Return Type
Guide to the Java ArrayList
How to Break from Java Stream forEach
Jackson Exceptions – Problems and Solutions
A Guide to TreeSet in Java
Constructor Injection in Spring with Lombok
Java Program to Implement the Vigenere Cypher
Giới thiệu Google Guice – Aspect Oriented Programming (AOP)
Apache Commons Collections BidiMap
Java Program to Implement Fibonacci Heap
Java Program to Implement Hash Tables Chaining with Binary Trees
Vòng lặp for, while, do-while trong Java
Spring Boot: Customize the Jackson ObjectMapper
Java NIO2 Path API
Introduction to Spring Data JPA
Java Program to Implement Euler Circuit Problem
Java Program to Compute Determinant of a Matrix
Java 8 StringJoiner
Spring Security – Reset Your Password