球一个高效算法
已知long xdata[5000]中每个元素值随机,每个元素的范围是在0~4096,
要统计xdata[5000]在1897<xdata[i]<2149范围内的元素出现次数
可以建一个数组int a[251]来存放次数
a[250] 对应值=2148出现的次数
a[249] 对应值=2147出现的次数
...
a[0] 对应值=1898出现的次数
我写的如下, 看似很低效
//---------------------
int indexTemp=0;
for(int t=0;t<4096;t++)
{
if((xdata[t]>1897) && (xdata[t]<2149))
{
indexTemp=2148-(xdata[t]);
a[indexTemp]++;
//2048-150 ~ 2048+100
}
}