セット{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です。
ソートされていないペアがなくなるまで、最小コストのソートされていないペアを交換することでブルートフォースを試しましたが、この方法は明らかに十分な速度ではありません。
私の質問は、自分の条件を考慮して、ソートの最小コストをどのように見つけるかです。