由于前段时间的考试耽误了C语言的学习,现在来重新填一下之前留下的坑
重新回顾一下冒泡排序,首先冒泡排序就是将十个数从小到大排序
通过两两相邻的两个数去比较,大的数就往后移一位,然后继续进行对比,直到所以数都比较一遍
在网上找了一个动图更好的理解冒泡排序
=========================================================================
第一步先来创建十个数,定义一个数组放到里面去
int arr[]={28,69,26,56,72,24,87,09,83,02};
然后写一个for循环,外层循环次数为我们的总数-1次,10个数就是进行9次比较
for (i = 1; i <= 9; i++)
{
}
外层循环写完后我们再写一个内层循环,内层循环的次数就是9轮的次数减去第几轮的次数, 例如:第一轮比较9-1=8次,第二轮比较9-2=7次
for (i = 1; i <= 9; i++)
{
for (j = 0; j <= 9 - i; j++)
{
}
}
然后我们在内层循环里写一个if语句去判断两个数是否为逆序,如果为逆序则创建一个temp变量去交换两个数的位置
if (arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j + 1] = temp;
}
全部判断并且交换完毕后我们进行打印
printf("冒泡排序后结果顺序为:\n");
for(i=0;i<10;i++)
{
printf("%-4d", arr[i]);
printf("\n");
}
这样冒泡排序就从头到尾进行了一遍啦
全部代码
int main()
{
int arr[] = { 28,69,26,56,72,24,87,9,83,2 };
int i, j, temp;
for (i = 1; i <= 9; i++)
{
for (j = 0; j <= 9 - i; j++)
{
if (arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j + 1] = temp;
}
}
}
printf("冒泡排序后结果顺序为:\n");
for(i=0;i<10;i++)
{
printf("%-4d", arr[i]);
printf("\n");
}
return 0;
}