1. 程式人生 > 其它 >離散化模板

離散化模板

技術標籤:數學-基礎數學

對於很大的資料進行離散化
比如:1、2、5000、9999999、6
離散化為:1、2、4、5、3
目的:對於一些只比較數字大小而不關注具體數時,離散化方便儲存。

操作:
1.sort
2.二分查詢位置:lower_bound(a,a+n,x)-a 在b陣列中尋找>=x的第一個數的位置

for(int i=1;i<=n;i++) 
{
	scanf("%lld",&a[i]);
	b[i]=a[i];
}
sort(b+1,b+n+1);
for(int i=1;i<=n;i++)
	a[i]=lower_bound(b+
1,b+n+1,a[i])-b;