A tutorial on Suffix Arrays

Awesome Explanation!! :slight_smile:

Very Well Written!

Video guidance perhaps? dummy here

Nicely Explained .Really liked it

Thank you very much @kuruma, It took me a while but I got the concept, very nice tutorial :slight_smile:

why we are not taking the condition in which L.nr[0]==L.nr[0] and L.nr[1]==L.nr[1] and the answer for this input
ABABBAABB shouldn’t be “5 0 6 2 8 4 1 7 3” but the above code gives 5 0 2 6 4 1 7 3 8 correct me if i am wrong

Thanks for this tutorial! I had issues with arrays while working with my coursework help website. This post helped to solve my problems.

Can anyone tell me how to print the final answer after verifying locally? I’m trying to learn this algorithm from last one week but no success till now and at this point I don’t feel so good. Please help me understand how matrix P is used.

GATTACA
4
1
6
5
0
3
2

Why suffix array for this string is that ? It should be 6 at the first !!!

Nice tutorial for start in suffix arrays.

And I really recommend Skew Algorithm. It’s just so awesome and magic, that it takes my breath away first time I saw it :slight_smile:

2 Likes

I am glad you liked it @michal27 :slight_smile: I will definitely try to learn Skew’s Algorithm in a not so distant future :slight_smile:

1 Like

Awesome post. Keep it up. :slight_smile:

1 Like

Thank you very much sir! It’s always great to see our work appreciated and obviously, @gamabunta also helped me a lot here :slight_smile:

1 Like

Yes, obviously, otherwise it wouldnt terminate properly :slight_smile:
I’ve seen this code snippet on a paper, but, I’ve fixed it now :smiley:

Nice Tutorial @kuruma

thanks, fixed

Nice explanation.
Another very clean explanation: c++ - Suffix Array Algorithm - Stack Overflow

4 Likes

please read the below answer

I was searching for it. Thank you.

1 Like

@kuruma , please explain what you are trying to do in this code:

for(i=0; i < N; i++)
P[stp][L[i].p] =i> 0 && L[i].nr[0]==L[i-1].nr[0] && L[i].nr[1] == L[i- 1].nr[1] ? P[stp][L[i-1].p] : i;