c++离散化处理大范围和重复数据

简介:

c++离散化处理大范围和重复数据

关于离散化

有些新手可能会问:离散化是什么?离散化就是将无限空间中有限的个体映射到有限的空间里去。

上面的定义肯定会有人看不懂(其实我刚开始学的时候也看不懂)

用我自己的话来说,就是在不改变数据的相对大小的条件下,对数据进行相应的压缩

可能还是有人看不懂,没关系,我们来看一个例子,顺便来讲一下离散化的基本操作:

现有一个数组:1,100,2367,562,364737,19,1974832947,100,562,2367

如果按照正常的方法,该开1974832947的空间,但是经过离散化后,就不需要

那么step 1:排序

用上面的例子来说,就是将上面的数据排序并去重,得到下面这组数据:

1,19,100,100,562,562,2367,2367,364737,1974832947

然后step 2:通过unique去重使大小与下标对应,并得到去重后的长度,得到下面这组数据:

1,19,100,562,2367,364737,1974832947

接着step 3:通过lower_bound算出离散化后的排列,得到下面这组数据:

1,2,3,4,5,6,7

那么这里就很尴尬了,这组数据无法应用于初始数据

所以在开始,我们多定义1个数组,来记录初始情况下的数据,再用step 3与其进行对应。

最终得到答案:1,3,5,4,6,2,7,3,4,5

下面给出模板:

 View Code
原文地址https://www.cnblogs.com/jasonownblog/p/12906712.html

相关文章
|
1月前
|
存储 算法 搜索推荐
【C++面向对象——群体类和群体数据的组织】实现含排序功能的数组类(头歌实践教学平台习题)【合集】
1. **相关排序和查找算法的原理**:介绍直接插入排序、直接选择排序、冒泡排序和顺序查找的基本原理及其实现代码。 2. **C++ 类与成员函数的定义**:讲解如何定义`Array`类,包括类的声明和实现,以及成员函数的定义与调用。 3. **数组作为类的成员变量的处理**:探讨内存管理和正确访问数组元素的方法,确保在类中正确使用动态分配的数组。 4. **函数参数传递与返回值处理**:解释排序和查找函数的参数传递方式及返回值处理,确保函数功能正确实现。 通过掌握这些知识,可以顺利地将排序和查找算法封装到`Array`类中,并进行测试验证。编程要求是在右侧编辑器补充代码以实现三种排序算法
40 5
|
9月前
|
存储 Serverless 数据安全/隐私保护
C++ 类的成员函数和数据成员的技术性探讨
C++ 类的成员函数和数据成员的技术性探讨
130 0
|
6月前
|
存储 C++
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
135 1
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
|
6月前
|
存储 算法 C++
C++ STL应用宝典:高效处理数据的艺术与实战技巧大揭秘!
【8月更文挑战第22天】C++ STL(标准模板库)是一组高效的数据结构与算法集合,极大提升编程效率与代码可读性。它包括容器、迭代器、算法等组件。例如,统计文本中单词频率可用`std::map`和`std::ifstream`实现;对数据排序及找极值则可通过`std::vector`结合`std::sort`、`std::min/max_element`完成;而快速查找字符串则适合使用`std::set`配合其内置的`find`方法。这些示例展示了STL的强大功能,有助于编写简洁高效的代码。
74 2
|
6月前
|
编译器 C++
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
|
6月前
|
存储 数据挖掘 C语言
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
100 4
|
6月前
|
存储 安全 数据处理
【C++】C++ 超市会员卡管理系统(面向对象)(源码+数据)【独一无二】
【C++】C++ 超市会员卡管理系统(面向对象)(源码+数据)【独一无二】
149 1
|
7月前
|
存储 C++ 容器
开发与运维数组问题之C++标准库中提供数据容器作为数组的替代如何解决
开发与运维数组问题之C++标准库中提供数据容器作为数组的替代如何解决
83 5
|
7月前
|
设计模式 监控 Go
开发与运维C++问题之C++部分原有的数据发送能力如何解决
开发与运维C++问题之C++部分原有的数据发送能力如何解决
38 1
|
7月前
|
存储 数据格式 运维
开发与运维C++问题之更改数据模型为通用数据结构如何解决
开发与运维C++问题之更改数据模型为通用数据结构如何解决
39 1