一道编程题
编程实现希尔、快速、堆排序、归并排序算法,并计算每种排序算法的比较、交换次数。要求待排数据从磁盘文件读入,实施排序后将数据写入另一个文件中。提示:参见排序操作,可设两个计数器,分别求出比较次数和交换次数。
哪位高手能帮忙写一下大概的程序代码
谢谢先
急!!!
int count1=0,count2=0;
void ShellSort(int a[],int n,int d[],int numOfD)
{
int i,j,k,m,span,temp;
for(m=0;m<=numOfD;m++)
{
span=d[m];
for(k=0;k<span;k++)
{
for(i=k;i<n-span;i=i+span)
{
temp=a[i+span];
j=i;
while(j>-1)
{
if(temp<=a[j])
{
a[j+span]=a[j];
j=j-span;
count1++;
}
else
{
break;
}
}
a[j+span]=temp;
if(i!=j)
{
count2++;
}
}
}
}
}