RT
大致就是分块+vector乱搞
就是整个vector分块,每个块长为 blen\mathrm{blen}blen,那么若数据的范围大小是 len\mathrm{len}len,则一共有 ⌈lenblen⌉\lceil\dfrac{\mathrm{len}}{\mathrm{blen}}\rceil⌈blenlen⌉ 个块。每次根据 aia_iai 的大小判断它在哪个块,然后二分插入的位置。这样插入数据的总复杂度是 O (nlog2 blen)\mathcal{O}\!\left(n\log_2\!\mathrm{blen}\right)O(nlog2blen)。
取出的时候,就和普通的桶排一样,按顺序取出,复杂度 O (max (maxai ,n))\mathcal{O}\!\left(\max\!\left(\max a_i\;,n\right)\right)O(max(maxai,n)) (?)
所以就是有没有人看一下复杂度是不是对的,还有块长取多少是最优的
如果实际上明显有更优的、可以取代本方法的排序算法那么是我sb