使用邻项交换法的注意事项
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\) 偏序意义下的排序方案。而“不可行”的严谨描述就是不满足严格弱序。

浙公网安备 33010602011771号