用“插入排序法”写好了,排序顺序和上面的不一样,但是交换次数一样。都是45次。
程序代码:
效果图:
程序代码:#include<stdio.h>
#include<malloc.h>
void InsertSorting(int a[],int len)
{ int count=0;
for(int i=1;i<len;i++)
{
int k=i,z;
int temp=a[k];
for(int j=i-1;(j>=0)&&(a[j]>temp);j--)
{
a[j+1]=a[j];
k=j;
a[k]=temp;
printf(" 第 %3d 次交换: ",++count);
for(z=0;z<10;z++)
printf("%4d ",a[z]);
printf("\n");
}
}
printf("共交换%4d 次",count);
}
int main(int argc, char *argv[])
{
int a[10]={10,9,8,7,6,5,4,3,2,1};
int i=0;
printf("这段代码是用插入排序法来统计共交换了多少次。\n ");
printf("交换前的数据: ");
for(i=0;i<10;i++)
printf(" %4d",a[i]);
printf("\n");
InsertSorting(a,10);
printf(" 交换后的数据: ");
for(i=0;i<10;i++)
printf("%3d ",a[i]);
return 0;
}效果图:









~

对哦,可以看比较次数而不是交换次数,这就直接多了