Один из способов - оценить количество элементов, которые необходимо переместить, чтобы отсортировать, а затем разделить их на общее количество элементов.
В качестве первого подхода я бы обнаружил первыйпросто количество раз, когда происходит переход от более высокого значения к более низкому.В вашем списке это будет:
3 -> 2
6 -> 5
для всего двух движений.Разделив это на шесть элементов, вы получите 33%.
В некотором смысле, это имеет смысл, поскольку вы можете просто переместить 2
между 1
и 3
и 5
между 4
и 6
.
Теперь могут быть крайние случаи, когда более эффективно перемещать вещи по-другому, но тогда вам, вероятно, придется написать действительно сложные алгоритмы поиска, чтобы найти лучшее решение.
Лично я бы начал с самого простого варианта, который давал вам то, что вы хотели, и беспокоился о расширении, только если он окажется неадекватным.