用“插入排序法”写好了,排序顺序和上面的不一样,但是交换次数一样。都是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; }
效果图: