如何用c语言统计基数排序所进行的数组元素间比较次数、赋值次数(不统计辅助操作,即不统计循环控制变量等的操作次数)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void RadixSort(int *a,int length)
{
int i,max=a[0],base=1;
for(i=1;i<length;i++)
{
if(a[i]>max)
{
max=a[i];
}
}
int t=(int)malloc(sizeof(int)length);
while(max/base>0)
{
int bucket[10]={0};
for(i=0;i<length;i++)
{
bucket[a[i]/base%10]++;
}
for(i=1;i<10;i++)
{
bucket[i]+=bucket[i-1];
}
for(i=length-1;i>=0;i--)
{
t[bucket[a[i]/base%10]-1]=a[i];
bucket[a[i]/base%10]--;
}
for(i=0;i<length;i++)
{
a[i]=t[i];
}
base=base10;
}
}
这是我写的基数排序代码,想知道怎么改可以统计比较次数和赋值次数