离散化的认识

离散化,一种常见的数据处理技巧,可以有效的降低时间复杂度,可以做到将一些低效的算法进行改进,甚至拟造出一些不可能的算法,使其速度大为提高。

离散化的基本思想就是将一些巨大的范围内,挑选出要用的值,再进行处理。

离散化的处理

注:对数据进行离散化处理的前提是这些数据只于他们的相对大小有关,而不与其具体数值有关,例如排序等。

进行离散化的处理其实很简单:为所有巨大的数据从小到大进行编号。

例如有6个数:

66666 66 666 666666 6 6666

他们排序后得:6<66<666<6666<66666<666666

所以这六个数分别表示为:5 2 3 6 1 4(即这几个数在排序后所得结果得位置)

利用STL对数据进行离散化处理

思路:利用sort排序,后删除重复元素,引出其代表的值(即标序号)。

设序列a[n]为待进行处理的序列,b[n]为其副本。

sort(sub_a,sub_a+n);

int size=unique(sub_a,sub_a+n)-sub_a;//size为离散化后元素个数

for(i=0;i

a[i]=lower_bound(sub_a,sub_a+size,a[i])-sub_a + 1;//k为b[i]经离散化后对应的值

对于第3步,若离散化后序列为0,1,2,...,size - 1则用lower_bound,从1,2,3,...,size则用upper_bound。其中lower_bound返回第1个不小于b[i]的值的指针,而upper_bound返回第1个大于b[i]的值的指针,当然在这个题中也可以用lower_bound然后再加1得到与upper_bound相同结果,两者都是针对以排好序列。使用STL离散化大大减少了代码量且结构相当清晰。

以上为“数据中的离散化”的内容,如有不足望大家指出,例题日后会专门水一篇文章的!

c语言中离散化,离散化的数据处理相关推荐

  1. r语言变量长度不一致怎么办_R语言实现数据离散化方法总结

    前言 在做数据挖掘模型的时候,我们有时会需要把连续型变量转型离散变量,这种转换的过程就是数据离散化,分箱就是离散化常用的一种方法. 数据离散化处理属于数据预处理的一个过程,R语言在数据处理上有天然的优 ...

  2. R语言数据预处理——离散化(分箱)

    R语言数据预处理--离散化(分箱) 一.项目环境 开发工具:RStudio R:3.5.2 相关包:infotheo,discretization,smbinning,dplyr,sqldf 二.导入 ...

  3. r语言中正定矩阵由于误差不正定_R语言之数据处理(一)

    在上一篇小文中,提到了关于R语言导入数据的一些方法,之后的重点就转向了数据的处理上.数据处理其实在整个数据分析项目中所占用的时间是比较多的,所以根据处理的目的不同,也有不同的处理方法.在R语言中,我通 ...

  4. R语言中的数据处理包dplyr、tidyr笔记

    R语言中的数据处理包dplyr.tidyr笔记 dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其 ...

  5. R语言中的地理/投影坐标系统(下)[翻译]

    原文链接:https://mgimond.github.io/Spatial/coordinate-systems-in-r.html. 译文分上.下两篇,这里为下篇. ❝ 「译者注」:在原文的本部分 ...

  6. R语言中哑变量的设置

    原文来源:https://www.sohu.com/a/199698358_489312 在构建回归模型时,如果自变量X为连续性变量,回归系数β可以解释为:在其他自变量不变的条件下,X每改变一个单位, ...

  7. 数据处理程序语言中的基本数据类型

    程序语言根据其设计目的不同,其侧重的基本数据类型也不同.JAVA.C#等语言被设计用来进行通用的应用程序开发,其基本数据类型是字符串.数字.布尔等原子数据类型,以及数组和通用对象.而SQL.Power ...

  8. c语言八大数据基本类型,C语言中基本的数据类型有哪些

    C语言中基本的数据类型有哪些 发布时间:2020-11-26 15:10:13 来源:亿速云 阅读:76 作者:Leah 本篇文章给大家分享的是有关C语言中基本的数据类型有哪些,小编觉得挺实用的,因此 ...

  9. C语言1e12怎么识别,掌握C语言中基本的运算符

    2.3.7 逗号运算符与逗号表达式 (10) 2.4 数据类型转换 (11) 2.4.1 自动类型转换 (11) 2.4.2 赋值转换 (12) 2.4.3 强制类型转换 (12) 习题二 (13) ...

最新文章

  1. pythonwebsocket接口自动化测试_基于websocket接口的jmeter自动化测试实践(2)
  2. poj 1208 Web Navigation(堆栈操作)
  3. php 批量转换文档编码格式_据说是国内最好的文档格式转换网址~PDF,PPT,EXCEL,WORD互相转换...
  4. nodejs+redis
  5. 让这个该死的服务跑起来了~
  6. 得到节点值的两种方法
  7. perl调用shell命令并获取输出
  8. js 获取select 中option 的个数
  9. 基于简单的路径压缩的并查集算法
  10. 15. module create
  11. JS学习总结(2)——变量
  12. 小公司如何部署实施Linux集群网站【转载】
  13. CAD二次开发——cad查看对象C#:MdgDbg.dll
  14. mysql 最大建议行数2000w,靠谱吗?
  15. Spring Cloud【Finchley】实战-05配置中心的搭建(配合使用Eureka)和Config Server高可用
  16. 自兴人工智能学院有话说,好机构培养好人才!
  17. 梅科尔工作室深度学习第五课-CNN
  18. 嵌入式之Linux的LCD背光调节及驱动的工作原理
  19. uniapp 打包app 引入高德地图sdk
  20. android 投屏截图,手机投屏到电脑上怎样截图?图片格式可以这样设置

热门文章

  1. java读取共享文件_使用文件流,读写网络共享盘
  2. 融云入选中国信通院《高质量数字化转型产品及服务全景图》
  3. JFrame布局讲解
  4. Python Process类开启多层级进程杀不死问题解决(从父进程杀死子进程)
  5. 【知了堂学习笔记】_Java笔试题整理(二)
  6. java填充多边形_JAVA绘制填充多边形输出文字保存成图片的示例
  7. jQuery深入学习02
  8. IHC/ICC 常见问题分析
  9. python编程从入门到实践,第七章练习题
  10. MindFusion JS Chart 2.0 Crack