使用邻项交换法的注意事项

posted on 2024-03-14 11:33:55 | under | source

定义 \(A<B\) 则不交换更优,\(A\not < B\) 则交换后更优。注意此处 “\(<\)” 符号不一定满足认知中 \(<\) 号的性质。

邻项交换的正确性基于:排序完成后(即不存在逆序对),任意交换元素不会使得答案更优;\(<\) 号满足严格弱序,否则使用标准库的快速排序后并不能达成我们想要的效果。

其中第一点是我们推式子推出来的,但是第二点往往是大多数人所忽略的。

例如 \(p(a,b)=[a+1<b]\),欲排序使得 \(\forall i<j,p(a,b)=1\)。但是不一定可行,例如 \(p(1,4)=1,p(2,4)=1,p(1,2)=0\),所以 \(1,2,4\) 不可能存在满足上式的 \(p\) 偏序意义下的排序方案。而“不可行”的严谨描述就是不满足严格弱序。

posted @ 2026-01-15 08:10  Zwi  阅读(3)  评论(0)    收藏  举报