我得到集合 {1,2,...,n} 的排列。我必须仅通过以最低总成本交换位于连续位置的数字来对这种排列进行排序。交换位于连续位置的元素 x,y 的成本是 min(x,y)。
例如,如果我有 3,1,2,4 的排列,则总最小成本为 3。因为我执行了这些步骤((x,y)意味着将 x 与 y 交换):
- (3,1),2,4 结果 1,3,2,4 成本 min(1,3)=1
- 1,(3,2),4 结果 1,2,3,4 成本 min(2,3)=2
总成本为 3。
我尝试了蛮力,通过交换最小成本未排序对,直到没有未排序对,但这种方法显然不够快。
我的问题是,在给定条件的情况下,如何找到最低的排序成本?