讓L = list of S's
其中S = list of lengths of sides of a triangle
。用於排序三角形列表的最小交換次數
然後,我需要找到對列表進行排序L.
列表L被說成是分類需要交換的最小數目:
- 如果在每個榜單中的元素進行排序以非遞減順序排列,並且
- 如果每個S列表的第i個索引處的元素按非遞減順序排序。
其中0 <= i <= 2
注:兩種類型的交換操作可以做到:
- withing一上榜無論元素可以被交換(需要1個互換)
- 兩個完整S列表可以交換而不改變元素的順序。 (需要3條掉期)
任何有效的算法時間複雜度方面找到排序列表L 儘可能需要交換的最小數目?
編輯:
正如@Mbo正確地指出,它並不總是能夠如此排序這樣的列表L.,這將是巨大的,如果有人提供了一個算法來檢查,如果列表L可以排序,然後如果可能的話進行排序。
看起來1)和2)條件是相似的。你會指定更好嗎? – MBo 2014-12-19 08:30:20
@MBo 1)我正在討論S1,S2,...,S的Sj列表中的元素。如果S1 = [a,b,c],那麼a,b,c應該是非decr順序。 2)我在談論每個Sj列表的相應元素,例如S1 [0],S2 [0],S3 [0] ...應該按照非遞減順序排序。 – 2014-12-19 08:40:14
在一般情況下是不可能的。考慮(4,7,10)和(5,6,7) – MBo 2014-12-19 08:47:02