【发布时间】:2013-03-01 19:47:45
【问题描述】:
这是网上笔试的题目之一。
编号为 (1...N) 的书籍已到达仓库。
如果书“i”仅出现在书“i+1”的左侧(对于所有 i,1
收到的书是随机顺序的。现在你的任务是找出实现上述最佳排列所需的最少移动次数。
请注意,唯一有效的移动是选择一对相邻的书并让它们交换位置。
例如,如果书籍最初的顺序是 3 5 4 2 1
解决办法可以
一个。先交换第二对书:{ result : 3 4 5 2 1 }
b.交换最右边的一对:{ result : 3 4 5 1 2 }
因此,在 2 步中我们实现了最佳安排。
我尝试过但无法找到解决方案。首先我将数组分成两个数组,然后我将对两个数组应用插入排序,但这也不起作用。 请帮我找出这个问题的算法。
【问题讨论】:
-
也许是你的一个同学?
-
这个条件“书“i”是否只出现在书“i+1”的左侧(对于所有 i, 1