首页 > 其他 > 详细

整数的保序离散化

时间:2020-07-24 12:13:55      阅读:82      评论:0      收藏:0      [点我收藏+]

整数的保序离散化

算法思想:

  • 数少但是值域大,需要映射,就叫离散化
  • 离散化与哈希:离散化是一种极其特殊的哈希,离散化需要保序,哈希是指一般意义的哈希

代码实现:

vector<int> alls;//存储所有待离散化的数据
sort(alls.begin(),alls.end());//将所有值排序
alls.erase(unique(alls.begin(),alls.end()),alls.end());//去掉重复元素
//二分求出x对应的离散化的值
int find(x)
{
    int l = 0,r = alls.size()-1;
    while(l<r)
    {
        int mid = l+r>>1;
        if(alls[mid]>=x) r=mid;
        else l=mid+1;
    }
    return l;//映射到0,1,2,3,...
    //return l+1; 映射到1,2,3,...
}

整数的保序离散化

原文:https://www.cnblogs.com/codertea/p/13370989.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!