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 8 Stream API Analogies in Kotlin
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder
What is a POJO Class?
Java Program to Use Above Below Primitive to Test Whether Two Lines Intersect
Java Program to Construct an Expression Tree for an Prefix Expression
Java Program to Implement IdentityHashMap API
Inject Parameters into JUnit Jupiter Unit Tests
Beans and Dependency Injection
Functional Interface trong Java 8
Spring Cloud Connectors and Heroku
Java Program to Implement Max Heap
Java Program to Implement Cubic convergence 1/pi Algorithm
Java Program to Implement the String Search Algorithm for Short Text Sizes
Spring Boot - Thymeleaf
Spring Boot - Securing Web Applications
Từ khóa this và super trong Java
Java – Reader to InputStream
@Lookup Annotation in Spring
Java Program to Implement the Binary Counting Method to Generate Subsets of a Set
Java Program to Find Transitive Closure of a Graph
Java Program to Perform Addition Operation Using Bitwise Operators
Java Copy Constructor
Java Program to Implement Merge Sort on n Numbers Without tail-recursion
Spring Cloud Bus
Java Program to Find kth Smallest Element by the Method of Partitioning the Array
Creating Docker Images with Spring Boot
The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring 5
Thực thi nhiều tác vụ cùng lúc như thế nào trong Java?
Apache Camel with Spring Boot
Lớp LinkedHashMap trong Java
Tiêu chuẩn coding trong Java (Coding Standards)
Binary Numbers in Java