所谓最少操作次数,也就是求这个序列中逆序对的个数。
简易证明:
逆序对的定义:(i<j) ,且 (a_i>a_j) 。
若要使原序列不下降,也就是要给原序列从小到大排序。
那么题目要求求出最少的交换次数
要使交换次数最少,那么每次交换就是有意义的
要使每次交换有意义,也就是对于 (a_i,a_j) 而言,(a_i) 在 (a_j) 前面且 (a_i) 大于 (a_j) 的时候,破坏了题目要求的单调性,也就要交换。
那么发现这个定义也就是逆序对的定义。
End.
P.S. 如果不知道怎么快速求逆序对可以看一下这里→https://www.cnblogs.com/BlueInRed/p/12404511.html,代码改都不用改。