2021-07-12
康托展开
康托展开就是求一个字符串的字典序是这一串字符串的字符能组成的字符串中的第几名。(从小到大排列)。
时间复杂度
康托算法能在O(n2)的时间里求出该字典序的排名,用线段树维护的话能减少到O(nlogn)。
康拓展开的式子
ai表示的是,倒数第个i位置后面的数比倒数第i个位置的数小的个数。
即x则为这个字符串的排名-1,因为字典序最小的x为0。
为什么这个式子能求出排名
用 45231作为例子。
4后面比4小的数有 2 3 1。那么吧这三个数和4进行交换,那么后面4个数字随便排列都比之前的字典序要
原创
2021-07-12 21:56:33 ·
80 阅读 ·
0 评论