秩排序是对阵列.自其时间复杂性为O(n²),不强烈建议使用,但非常直观而且很容易理解。要执行等级 分类,这里是通用的C类++:
模板<T类>
无效等级(T a[],int n,int r[]])
{
for(int i=0;i<n;i++)
r[i]=0//初始化秩数组
for(int i=1;i<n;i++)
对于(int j=0;j<i;j++)
如果(a[j]<=a[i])r[i#93++;
否则r[j]++;
}模板<T类>
无效重排(T a[],int n,int r[]])
{
T*u=新T[n+1
for(int i=0;i<n;i++)
u[r[i]]=a[i]
for(int i=0;i<n;i++)
a[i]=u[i]
删除[]u;
}如你所见,第一个功能对传递的数组进行排序,并告诉第二个功能下哪一个订单物体到。为了使代码正常工作比较 操作员必须是过载对于各自班T。