实验报告一、实验题目:冒泡排序、直接插入排序和直接选择排序的算法。二、实验环境:window7、mytc、计算机一台三、实验目的:通过编程熟练掌握实现冒泡排序、直接插入排序和直接选择排序的算法。四、实验内容:(1)输入数据运算字符。首先输入冒泡排序的运算程序:#defineN4voidbustor(intx[],intn){inti,j,m,k;for(i=1;i<=n-1;i++)/*n个数进行n-1趟排序*/{k=1;/*各趟开始假定本趟不会发生数据交换*/for(j=1;j<=n-1;j++)/*第i趟比较n-i次*/if(x[j]>x[j+1]){m=x[j];x[j]=x[j+1];/*相邻两数交换*/x[j+1]=m;k=0;/*本趟发生了数据交换*/}if(k==1)break;}}之后运行主程序main()/*程序由此开始*/{inta[N+1],i;for(i=1;i<=N;i++)scanf("%d",&a[i]);/*输入N个数*/bustor(a,N);/*调用冒泡排序函数*/for(i=1;i<=N;i++)printf("%4d",a[i]);/*输出排序后的序列*/}/*数据到此结束*/查看程序是否正常运行。输入直接插入排序的运算程序:#defineN7voidsis(intr[],intn){inti,j;for(i=2;i<=n;i++)/*从第2个数开始逐个插入*/{r[0]=r[i];/*把待插数保存到r[0]中*/j=i-1;while(r[0]x[j+1])/*若前面的数大于后面的数则交换*/{m=x[j];x[j]=x[j+1];/*相邻两数交换*/x[j+1]=m;k=0;/*本趟发生数据交换*/}if(k==1)break;/*若第i趟未发生数据交换,则排序结束*/}}main()/*程序由此开始*/{inta[N+1],i;for(i=1;i<=N;i++)scanf("%d",&a[i]);/*输入N个数*/bustor(a,N);/*调入冒泡排序函数*/for(i=1;i<=N;i++)printf("%4d",&a[i]);/*输入排序后的序列*/}/*程序到此结束*/经检查发现voidbustor(intx[],intn),语句加了,导致程序运行错误。for(j=1,j<=n-1,j++)语句中应该是;导致程序运行错误直接插入排序:当运行此段程序发现运行结果与运行的用例应得的结果不同#defineN7voidsis(intr[],intn){inti,j;for(i=2;i<=n;i++)/*从第2个数开始逐个插入*/{r[0]=r[i];/*把待插数保存到r[0]中*/j=i-1;while(r[0]