Mam listę nazw, dowolną ilość, powiedzmy że 1000 sztuk przynajmniej;
co jest zapisane na dysku, ale podczas ładowania jest sortowane, co może zbyt długo trwać
gdy to nie jest zbytnio posortowane fizycznie.
Tylko jak ocenić ten stopień posortowania - w procentach, od 0 - wcale, do 100% - posortowane idealnie.
Np. taka lista - 8 nazw może być tak ustawione:
e, f, g, h, a, b, c, d
albo tak:
a, e, b, f, c, g, d, h
i jak zmierzyć, ocenić to posortowanie?
Tak na trupa wydaje się że wystarczy policzyć tylko parki;
i gdy a[i] <= a[i+1] wtedy jest OK, a w przeciwnym razie niedobrze.
Wtedy dla tych dwóch przykładów otrzymamy:
e < f < g < h > a < b < c < d, czyli 7 na 8 stoi OK, a tylko jedna para nie pasuje: h > a
co daje aż: 7/8 = 87.5% współczynnik posortowania... lekka przesada chyba, bo to raczej wygląda na 50%.
drugi przypadek:
a < e > b < f > c < g > d < h; czyli tylko 4 na 8 są OK, co daje 50% posortowania... w zasadzie dobrze chyba.
Zatem ta metoda nie jest zbyt dobra do oceny posortowania.
Jak to się mierzy profesjonalnie?