Mam własną definicję „sortowania” sekwencji.
Przy dowolnej sekwencji [a, b, c,…] porównujemy ją z posortowaną sekwencją zawierającą te same elementy, liczymy liczbę dopasowań i dzielimy ją przez liczbę elementów w sekwencji.
Na przykład w podanej kolejności [5,1,2,3,4]
postępujemy w następujący sposób:
1) posortuj sekwencję: [1,2,3,4,5]
2) porównaj posortowaną sekwencję z oryginałem, przesuwając ją o jedną pozycję na raz i licząc maksymalną liczbę dopasowań:
[5,1,2,3,4]
[1,2,3,4,5] one match
[5,1,2,3,4]
[1,2,3,4,5] no matches
[5,1,2,3,4]
[1,2,3,4,5] no matches
[5,1,2,3,4]
[1,2,3,4,5] no matches
[5,1,2,3,4]
[1,2,3,4,5] no matches
[5,1,2,3,4]
[1,2,3,4,5] 4 matches
[5,1,2,3,4]
[1,2,3,4,5] no matches
...
[5,1,2,3,4]
[1,2,3,4,5] no matches
3) Maksymalna liczba dopasowań wynosi 4, możemy obliczyć „sortowanie” jako 4/5 = 0,8.
Sortowanie posortowanej sekwencji wynosi 1, a sortowanie sekwencji z elementami umieszczonymi w odwrotnej kolejności - 1 / n.
Ideą tej definicji jest oszacowanie minimalnej ilości pracy, którą musielibyśmy zrobić, aby przekonwertować dowolną sekwencję na posortowaną sekwencję. W powyższym przykładzie musimy przesunąć tylko jeden element, 5 (istnieje wiele sposobów, ale przesunięcie 5 jest najbardziej wydajne). Gdyby elementy były umieszczone w odwrotnej kolejności, musielibyśmy przenieść 4 elementy. A po uporządkowaniu sekwencji nie jest wymagana żadna praca.
Mam nadzieję, że moja definicja ma sens.