摘要:
康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。 康托展开的实质是计算当前排列在所有由小到大全排列中的名次,因此是可逆的。 这个算出来的数康拖展开值,是在所有排列次序 - 1的值,因此X+1即为在全排列中的次序: 同理,我们可以用一个数组标记已经用过的数,逆推出数列: 阅读全文
posted @ 2019-05-25 15:39
hélium
阅读(206)
评论(0)
推荐(0)
摘要:
隆重介绍一个优秀的数据结构!! 它不像分块那样笨重—— 它不像线段树那样复杂—— 它拥有着logn的复杂度—— 它可以快速算出逆序对数量—— 树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意 阅读全文
posted @ 2019-05-25 15:35
hélium
阅读(192)
评论(0)
推荐(0)
摘要:
仔细想想,如果存在正整数 i, j 使得 1 ≤ i < j ≤ n 且 A[i] > A[j],则称为一个逆序对。 这就意味着如果想要统计逆序对,就要在数列中 从左向右依次算出 每个数右侧比自己小的数的个数,最后将将其相加。但是,当我们新读入一个数时,根本不清楚后面还未读进来的数是怎样的! 所以对 阅读全文
posted @ 2019-05-25 14:57
hélium
阅读(389)
评论(0)
推荐(0)

浙公网安备 33010602011771号