离散化

离散化
          9 1 0 5 4
 下标  1 2 3 4 5

排序后(从小到大)//如果是从大到小呢?呵呵,那么最后的结果就是最大的变成最下的了。最小的变成最大的了。
         0 1 4 5 9
下标  3 2 5 4 1
把下标对应在另一个数组b【下标】= i从1-5
则    下标 b[3]=1;b[2]=2;b[5]=3;b[4]=4;b[1]=5;
最后变成 5 2 1 4 3
离散化成功。
把 9 1 0 5 4变成 5 2 1 4 3.
经历的过程是:
bool cmp(st q, st z)
{
 return q.date<z.date;
}//运用到快排

for(i=1;i<=n;i++)
  {
   scanf("%d",&a[i].date);
   a[i].info=i;
  }    //结构体实现
  sort(a+1,a+1+n,cmp);
  for(i=1;i<=n;i++) b[a[i].info]=i; 

你可能感兴趣的:(离散化)