基数排序
posted on 2024-05-18 13:36:22 | under | source
初赛前用来安慰自己情绪的。
基本思想就是元素拆成 \([1,k]\) 级关键字,然后逐级排序就好了。
显然有个很蠢的实现,每次分成前 \(i\) 位相等的若干组,之后在组内排序。
注意一下,基数排序、计数排序是稳定的,即排序后相等的元素相等位置不变。
实现肥肠简单,直接从 \(k\to 1\) 计数排序即可。
归纳证明:现在排 \(i\) 位,显然,\(i\) 位相等的元素 \([i+1,k]\) 位相对位置不变,总之 \([i,k]\) 位被排好了。
所以注意计数排序要维护好稳定性。
最后,想必你也明白了2022宇宙射线那题:因为元素变异,不影响其它元素的相对顺序,所以最后移去了没有影响。

浙公网安备 33010602011771号