简介
预先空间中的有效个体映射到有限空间中去,以此提高算法的时空效率
离散化是一种将数组的值域压缩,从而更加关注元素的大小关系的算法
一些依靠下标实现的算法和数据结构无法实现时,我们就需要离散化
例如原数组的范围是{1,1e9],而数组大小仅为1e5,那么说明元素值的“种类数”,最多也就1e5中,从而可以利用一个数组(即离散化数组)来表示某个元素值的排名(即第几小),实现值域压缩,将原数组的元素值作为下(一般是去重的,当然也存在不去重的方法,但是比较少见)的,
例题实战
题目大意
输入一个长度为n的数组An,输出第i个数在数组从小到大排序后的排名,数字大小相同时排名一样。
输入:5
5 4 2 2 1
输出 4 3 3 2 1
(答案在下一章“离散化算法的习题答案”)