一开始打算用排序,然后计算当中的交换次数,发现有点难.看了discuss才知道.算法很简单,但是给不出严密的证明.
找出序列中所有的"环",这里的"环"就是指它们互相交换之后能成为标准序列的最小集合
交换的总次数 = 元素个数 - 环数
很久没做题了,写写报告...
![]()
本文介绍了一种计算序列中元素通过交换达到有序状态所需最少步骤的方法。核心思想在于寻找序列中的环,即通过互换能够使序列趋向有序的最小集合,并通过元素数量与环的数量差来确定总的交换次数。
一开始打算用排序,然后计算当中的交换次数,发现有点难.看了discuss才知道.算法很简单,但是给不出严密的证明.
找出序列中所有的"环",这里的"环"就是指它们互相交换之后能成为标准序列的最小集合
交换的总次数 = 元素个数 - 环数
很久没做题了,写写报告...
![]()

被折叠的 条评论
为什么被折叠?