您当前的位置: 首页 > 

HeartFireY

暂无认证

  • 1浏览

    0关注

    334博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

离散化 详解

HeartFireY 发布时间:2021-05-31 22:41:00 ,浏览量:1

一、简介

离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。

离散化本质上可以看成是一种哈希 ,其保证数据在哈希以后仍然保持原来的全/偏序关系。

通俗地讲就是当有些数据因为本身很大或者类型不支持,自身无法作为数组的下标来方便地处理,而影响最终结果的只有元素之间的相对大小关系时,我们可以将原来的数据按照从大到小编号来处理问题,即离散化。

用来离散化的可以是大整数、浮点数、字符串等等。

为什么要进行离散化处理?

离散化是程序设计中一个常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中,只考虑需要用的值。离散化可以改进一个低效的算法,甚至实现根本不可能实现的算法。要掌握这个思想,必须从大量的题目中理解此方法的特点。例如,在建造线段树空间不够的情况下,可以考虑离散化。

二、数据离散化

有些数据本身很大, 自身无法作为数组的下标保存对应的属性。如果这时只是需要这堆数据的相对属性, 那么可以对其进行离散化处理。当数据只与它们之间的相对大小有关,而与具体是多少无关时,可以进行离散化。

例如: 91054 91054 91054与 52143 52143 52143的逆序对个数相同。 设有 4 4 4个数: 1234567 、 123456789 、 12345678 、 123456 1234567、123456789、12345678、123456 1234567、123456789、12345678、123456 排序: 123456 < 1234567 < 12345678 < 123456789 = > 1 < 2 < 3 < 4 123456

关注
打赏
1662600635
查看更多评论
立即登录/注册

微信扫码登录

0.0354s