数据的离散化

使用STL算法离散化:
思路:先排序,再删除重复元素,然后就是索引元素离散化后对应的值。
假定待离散化的序列为a[n],b[n]是序列a[n]的一个副本,则对应以上三步为:

#include<cstdio>
#include<algorithm>
using namespace std;
int a[1005];
int main(){
    int size,x=1,n;//离散后数组大小
    scanf("%d",&n);
    for(int i=0;i<n;i++)scanf("%d",a+i);
    sort(a,a+n);size=unique(a,a+n)-a;//排序+去重
    scanf("%d",&x);
    int find=lower_bound(a,a+n,x)-a;//用的时候加个lower_bound就行了
    printf("%d",find);
    return 0;
} 

unique()函数是一个去重函数,STL中unique的函数 unique的功能是去除相邻的重复元素(只保留一个),unique(num,mun+n)返回的是num去重后的尾地址,之所以说比不真正把重复的元素删除,其实是,该函数把重复的元素一到后面去了,然后依然保存到了原数组中,然后返回去重后最后一个元素的地址,因为unique去除的是相邻的重复元素,所以一般用之前都会要排一下序。

时间: 2024-10-29 19:06:08

数据的离散化的相关文章

数据离散化处理

有时候,我们需要使用数组下标来维护某些数据结构(例如并查集),但如果数据范围太大我们开不了这么大的数组,这时候,我们就要将数据进行离散化.例如数据{99844531,75331434,87433476,67542347}我们可以根据相对大小关系67542347<75331434<87433476<99844531来开一个新数组编号,二分查找在新数组里的编号.如b[1]=67542347,b[2]=75331434,b[3]=87433476,b[4]=99844531.当我们要查找998

【POJ】2528 Mayor&#39;s posters ——离散化+线段树

Mayor's posters Time Limit: 1000MS    Memory Limit: 65536K Description The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign have been placing their electoral posters at all places at their whim. The city

UVa Sculpture(离散化 floodfill)

题意: 给定n个立方体的一个顶点坐标和3边长度,  问这些立方体组成的雕塑的表面积和体积,   坐标都是整数,n最大为50,  最大为500, 边长最大也是500. 分析: 继UVa221后又一道离散化 首先先深入理解一下离散化: (转自 http://www.cnblogs.com/jerryRey/p/4599388.html) 先来看一个问题:给你以下的网格,你需要多少空间去存储红点区间的信息呢? 只需要图上所示的1,2,3,4个点就足够表示红点所在区间了,为什么不是一个区间的第一个红点和

UESTC 1059 秋实大哥与小朋友(线段树 + 离散化)

Description 秋实大哥以周济天下,锄强扶弱为己任,他常对天长叹:安得广厦千万间,大庇天下寒士俱欢颜. 所以今天他又在给一群小朋友发糖吃. 他让所有的小朋友排成一行,从左到右标号.在接下去的时间中,他有时会给一段区间的小朋友每人v v 颗糖,有时会问第x x 个小朋友手里有几颗糖. 这对于没上过学的孩子来说实在太困难了,所以你看不下去了,请你帮助小朋友回答所有的询问. Input 第一行包含两个整数n  ,m  ,表示小朋友的个数,以及接下来你要处理的操作数. 接下来的m  行,每一行表

Mayor&#39;s posters(线段树 + 离散化)

Description The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign have been placing their electoral posters at all places at their whim. The city council has finally decided to build an electoral wall for

Kaggle项目泰坦尼克号预测生存情况(上)-------数据预处理

假期闲着无聊,做了一下Kaggle练手的项目--预测泰坦尼克号乘客的存活情况.对于一些函数和算法,刚开始也是懵懵懂懂的,但通过自己查资料,还是明白了许多,我会把参考资料的网址放在需要查看的地方. ------------------------------------ 我们的整个流程如下: ①数据预处理:数据清洗.可视化.标签化 ②分割训练数据 ③随机森林分类器及其参数调节 数据预处理:数据清洗.可视化.标签化 首先,先导入需要的模块并读取数据 #导入包,读取数据 import numpy as

常用技巧——离散化

"离散化,就是把无限空间中有限的个体映射到有限的空间中去,以提高算法的时空效率." 很多算法的复杂度与数据中的最大值有关,比如树状数组和纯用数组实现的一对一标记.时常会遇到这种情况:数据的范围非常大或者其中含有负数,但数据本身的个数并不是很多(远小于数据范围).在这种情况下,如果每个数据项的具体值并不重要,重要的是他们之间的大小关系的话,我们可以先对这些数据进行离散化,使数据中的最大值尽可能小且保证所有数据都是正数. 例如,有这样一个长为5的序列:102131511,123,98131

2017.06.29数据挖掘基础概念第二.三章

第二章21.研究的属性类型标称属性:值是一些符号或事物的名称,代表某种类型.编码或状态二元属性:是一种标称属性,只有两个类别或状态,又称布尔属性序数属性:是一种属性,其可能的值之间具有有意义的序或秩评定,但是相续值之间的差是未知的数值属性:是定量的,即他是可度量的量,可用整数或实数值表示(区间和比率标度)22.数据散布常见的度量量(数据如何分散的方法/识别离群点)极差 四分位数.四分位数极差.五数概括图.方差和标准差23.审视数据的图形条形.饼图.线图.分位数图.分位数-分位数图.直方图和散点图

OLAP了解与OLAP引擎——Mondrian入门(一)

一.  OLAP的基本概念 OLAP(On-Line Analysis Processing)在线分析处理是一种共享多维信息的快速分析技术:OLAP利用多维数据库技术使用户从不同角度观察数据:OLAP用于支持复杂的分析操作,侧重于对管理人员的决策支持,可以满足分析人员快速.灵活地进行大数据复量的复杂查询的要求,并且以一种直观.易懂的形式呈现查询结果,辅助决策. 二.  OLAP的基本内容 (1)变量(度量) 变量是数据度量的指标,是数据的实际意义,即描述数据"是什么".像示例中的人数.