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:
Deploy a Spring Boot WAR into a Tomcat Server
Java Program to Implement Fermat Factorization Algorithm
Lớp Collectors trong Java 8
Java Program to Implement Bucket Sort
Spring RestTemplate Request/Response Logging
Tips for dealing with HTTP-related problems
Java 8 – Powerful Comparison with Lambdas
Why String is Immutable in Java?
The XOR Operator in Java
Java Program to Implement Trie
Java Program to Implement Merge Sort Algorithm on Linked List
Quick Intro to Spring Cloud Configuration
The Guide to RestTemplate
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
Guava – Join and Split Collections
Apache Tiles Integration with Spring MVC
Spring Boot - Actuator
Spring Security Logout
Anonymous Classes in Java
Hướng dẫn Java Design Pattern – MVC
Java Program to Find Nearest Neighbor Using Linear Search
Spring Webflux and CORS
Java Program to Implement TreeSet API
Hướng dẫn Java Design Pattern – Decorator
Java Program to Implement vector
Ignore Null Fields with Jackson
Registration – Password Strength and Rules
Spring Boot - Tomcat Deployment
HttpClient 4 – Send Custom Cookie
A Guide to BitSet in Java
JWT – Token-based Authentication trong Jersey 2.x
String Joiner trong Java 8