一个元素在一个序列中的名次是所有比他小的元素个数加上在它左边出现的与它相同的元素个数。
template<class T>
void rank(T a[],int n,int r[])
{
for(int i=0;i<n;i++)
{
r[i]=0;
}
for(int i=1;i<n;i++)
for(int j=0;j<i;j++)
{
if(a[j]<=a[i])]
r[i]++;
else
r[j]++;
}
}
这是个很简单的程序,a是要计算名次的数组,n是a的个数,r是存取名次的数组。
首先初始化r数组,即每个元素的名次都初始化为0,然后从第一个元素开始,将其与其左边的所有元素
进行比较,当其比较大(>=)时,其名次加一,当其较小时,将与其进行比较的那个数的名次加一,这样
比较一遍后名次结果就存储到r数组里面啦。