Я собираюсь написать эффективный метод цепей Маркова n-го порядка для генерации случайных текстовых строк на основе набора примеров текста. В настоящее время у меня есть реализация Java, которая использует несколько слоев карт, но это неуклюже. Суффиксный массив был бы идеален для моих нужд, но я не уверен, может ли это быть эффективно реализовано в Java.
В C я мог бы сделать что-то вроде:
char exampleText[MAX];
char *suffixArray[MAX];
...
while(n<MAX && suffixArray[n++] = &exampleText[n]);
sort(suffixArray);
Это ужасно в Java, так как мне нужно было бы взять подстроки exampleText
или превратить suffixArray
в массив индексов или что-то еще.
Какие-нибудь предложения для хорошего подхода к этому в Java?