急急急!!!如何在直接插入排序中记录比较次数和数据移动次数?!

来源:百度知道 编辑:UC知道 时间:2024/06/22 16:53:24
void insertsort(int a[],int n)
{
int temp,j,i;

for(i=1;i<n;i++)
{

if(a[i]<a[i-1])
{
temp=a[i];
j=i-1;
do{a[j+1]=a[j];j--;}
while(j>=0 && a[j]>temp);
a[j+1]=temp;
}
}

}

请问如何在这个程序中记录比较次数和数据移动次数?
请具体写一下……谢谢!

在开头引进计数变量m(比较次数)和n(数据移动次数)并初始化:
int m=0,n=0;

把if(a[i]<a[i-1])
修改为if(m++,a[i]<a[i-1])

把do{a[j+1]=a[j];j--;}
修改为do{a[j+1]=a[j],n++;j--;}

需要的话在最后输出