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:
What is Thread-Safety and How to Achieve it?
Java Program to Perform Inorder Non-Recursive Traversal of a Given Binary Tree
Java Program to Implement Tarjan Algorithm
Configure a Spring Boot Web Application
Hướng dẫn Java Design Pattern – Flyweight
@DynamicUpdate with Spring Data JPA
Java Program to Implement Self Balancing Binary Search Tree
Tính đóng gói (Encapsulation) trong java
Java Program to Search for an Element in a Binary Search Tree
Queue và PriorityQueue trong Java
Spring REST API with Protocol Buffers
Spring Boot - Introduction
Spring Boot - Securing Web Applications
Java Program to do a Depth First Search/Traversal on a graph non-recursively
Java Program to Implement Kosaraju Algorithm
Java Program to Implement the Hill Cypher
Guide to Escaping Characters in Java RegExps
Getting a File’s Mime Type in Java
Implementing a Runnable vs Extending a Thread
Giới thiệu Google Guice – Injection, Scope
Deploy a Spring Boot WAR into a Tomcat Server
Java Program for Douglas-Peucker Algorithm Implementation
Java Program to Find the Median of two Sorted Arrays using Binary Search Approach
Java – Write a Reader to File
Java Program to Solve any Linear Equations
Spring Web Annotations
Java Program to Implement Sparse Matrix
Hướng dẫn Java Design Pattern – Observer
Java Program to Implement Sieve Of Sundaram
Guide to Java Instrumentation
Java Program to Implement Hash Tables
Send email with JavaMail