离散化


离散化
-在不改变数据相对大小的前提下,对数据进行相应的缩小。
-可以有效降低时空复杂度。
-应用于空间不够的情况,数据本身过大无法作为下表的情况。
-且只与数据之间相对大小有关,具体是多少无关。

使用STL进行离散化
-思路:排序,删除重复元素,索引元素离散化后的值。
-实现:

1 for(int i=1;i<=n;i++) {
2     cin>>A[i];
3     B[i]=A[i];
4 }
5 sort(B+1,B+1+n);
6 cnt=unique(B+1,B+1+n)-B-1;
7 for(int i=1;i<=n;i++)
8     A[i]=lower_bound(B+1,B+1+cnt,A[i])-B;

 

posted @ 2019-07-20 19:14  敲可耐的螺旋藻  阅读(86)  评论(0编辑  收藏  举报