Навскидку:
LEN- длина дампа (полного, а не только изменения)
MIN_LEN- минимальная длина трека (лучше в % от LEN)
DATA- исходный массив данных
DATA[a..b] - подмассив от a до b.
for i = (LEN-MIN_LEN)..1 #size of tail
for j = MIN_LEN..(LEN-i) #size of head
if (equal(DATA[0..j], DATA[i..LEN]) exit;#DATA[0..(i-1)] - original track
хотя квадратичная сложность- не комильфо...




Ответить с цитированием