离散化
离散化是什么呢?
百度百科给的资料:https://baike.baidu.com/item/%E7%A6%BB%E6%95%A3%E5%8C%96/10501557
但其实通俗一点就是给定一个序列,将其转化为每个元素在序列中的序数的绝对值.
再说白一点就是看序列中的每一个元素大小在序列中排第几.
例如:1 66 75 23 55
离散化后:1 4 5 2 3
模板:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int a[100]; int b[100]; void Discretization() {//离散化 sort(b+1,b+10+1); unique(b+1,b+1+10) - (b + 1); for(int i = 1;i <= 10; i++) a[i] = lower_bound(b+1,b+1+10,a[i])-b; } int main() { for(int i = 1;i <= 10; i++) { cin >> b[i]; a[i] = b[i]; } Discretization(); for(int i = 1;i <= 10; i++) cout << a[i] << ' ';//离散化后的数组 return 0; }