Aby wygenerować wektor T z L, należy poprzez sortowanie utworzyć również wektor F. Następnie dla każdego kolejnego elementu F wyznaczyć pozycję elementu odpowiadającego w L. Wówczas index elementu F będzie indeksem T, a index wyznaczonego elementu L jego wartością. Wyznaczony element z L zaznaczamy jako użyty.Najlepiej zobrazować to na przykładzie pięciu kroków algorytmu (kropką • zaznaczone użyte elementy):
Krok Algorytmu012345 FLTFLTFLTFLTFLTFLT Pozycja 0 a2 a2 a2 a2 •2 •2 Pozycja 1 Pa Pa13Pa13Pa13Pa13P•13 Pozycja 2 W W• W•8W•8W•8W•8 Pozycja 3 ak ak ak ak0ak0ak0 Pozycja 4 ai ai ai ai ai1ai1 Pozycja 5 de de de de de de7 Pozycja 6 ep ep ep ep ep ep Pozycja 7 id id id id id id Pozycja 8 iW iW iW i• i• i• Pozycja 9 ik ik ik ik ik ik Pozycja 10 ks ks ks ks ks ks Pozycja 11 ki ki ki ki ki ki Pozycja 12 lo lo lo lo lo lo Pozycja 13 oP oP o• o• o• o• Pozycja 14 pi pi pi pi pi pi Pozycja 15 sl sl sl sl sl sl
Z tak otrzymanego wektora T i indeksu P, z łatwością uzyskujemy pierwotny blok danych.
Przykładowy kod w C #include <unistd.h> #include <stdlib.h> #include <string.h> #include <assert.h> #include <stdio.h>
typedef unsigned char byte;
byte *rotlexcmp_buf = NULL; int rottexcmp_bufsize = 0;