/*
Date:20/4/7
输入10个数,分别用冒泡与插入进行排序,并输出二种排序所用的循环次数
*/
#include"stdio.h"
int main (){
int a[9];
int b[9];
int temp;
printf("请输入这十个数:\n");
for(int i=0;i<=9;i++) {
scanf("%d",&a[i]);
b[i]=a[i];
}
//bubble以从小到大为例 ,相邻的两个进行比较,像冒泡泡一样慢慢向后推
int times=0;
for (int i=0; i<=9; i++) {
for (int j=0; j<=9; j++) {
if (a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
times+=1;
}
}
}
printf("使用冒泡排序所用的循环次数为%d \n",times);
printf("冒泡排序结果为:\n");
for(int i=0;i<=9;i++) {
printf("%d ",a[i]);
}
printf("\n");
//Insertion 与前面的数相比,进行插入
int times1=0;
for(int i=1;i<10;i++)
{
int j=i-1;
int temp=b[i]; //需要插入的数据
while(temp<b[j] &&j>=0)//当插入的数据小于前面的数据时
{
b[j+1]=b[j];//将插入的数据的前面的数据向后移动
j--;
times1+=1;
}
b[++j]=temp;//插入数据
}
printf("使用插入排序所用的循环次数为%d \n",times1);
printf("插入排序结果为:\n");
for(int i=0;i<=9;i++) {
printf("%d ",b[i]);
}
return 0;
}
输入10个数,分别用冒泡与插入进行排序,并输出二种排序所用的循环次数
最新推荐文章于 2024-05-30 21:35:06 发布