Ich habe meine eigene Definition von "Sortierbarkeit" einer Sequenz.
Bei gegebener Folge [a, b, c,…] vergleichen wir sie mit der sortierten Folge, die dieselben Elemente enthält, zählen die Anzahl der Übereinstimmungen und dividieren sie durch die Anzahl der Elemente in der Folge.
Zum Beispiel [5,1,2,3,4]
gehen wir bei gegebener Reihenfolge wie folgt vor:
1) sortiere die Reihenfolge: [1,2,3,4,5]
2) Vergleichen Sie die sortierte Sequenz mit dem Original, indem Sie sie jeweils um eine Position verschieben und die maximale Anzahl der Übereinstimmungen zählen:
[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) Die maximale Anzahl von Übereinstimmungen ist 4, wir können die "Sortierbarkeit" als 4/5 = 0,8 berechnen.
Die Sortierbarkeit einer sortierten Sequenz wäre 1, und die Sortierbarkeit einer Sequenz mit in umgekehrter Reihenfolge angeordneten Elementen wäre 1 / n.
Die Idee hinter dieser Definition ist es, den minimalen Arbeitsaufwand abzuschätzen, der erforderlich ist, um eine Sequenz in die sortierte Sequenz umzuwandeln. Im obigen Beispiel müssen wir nur ein Element, die 5, verschieben (es gibt viele Möglichkeiten, aber das Verschieben von 5 ist am effizientesten). Wenn die Elemente in umgekehrter Reihenfolge platziert würden, müssten wir 4 Elemente verschieben. Und wenn die Reihenfolge sortiert wurde, ist keine Arbeit erforderlich.
Ich hoffe meine Definition macht Sinn.