一、冒泡排序是什么
冒泡排序:依次比较相邻的两个数,将小的放在后面,大的放在前面。 小的数沉底,大的数浮上来(有大到小排序)
比如有八个数,那么使用一次排序方法
将第1个数和第2个比较大小,小的变第2个。
将第2个数和第3个比较大小,小的变第3个。
将第3个数和第4个比较大小,小的变第4个。
将第4个数和第5个比较大小,小的变第5个。
将第5个数和第6个比较大小,小的变第6个。
将第6个数和第7个比较大小,小的变第7个。
将第7个数和第8个比较大小,小的变第8个。
那么最小的一个就到了第八个数(沉到了底下)
然后以此类推,将原来的数变成七个,再使用一次上面的方法,那么第二小的数就到了第七位。以此类推逐级递减一个数再进行以上方法,知道前两个比较大小,排序结束。此时这八个数便便是有大到小排序。
二、编写代码
第一步:使用循环输入八个数输入到数组
#include<stdio.h>
int main()
{
int arr[8], i, j,t;
for (i = 0; i < 8; i++)//输入八个数
scanf("%d", &arr[i]);
return 0;
}
第二步:使用一个j循环来代表着每一次使用排序方法
#include<stdio.h>
int main()
{
int arr[8], i, j,t;
for (i = 0; i < 8; i++)//输入八个数
scanf("%d", &arr[i]);
for (j = 0; j < 8;j++)
return 0;
}
第三步:在j循环中嵌套一次i循环来进行两两比较交换排序
#include<stdio.h>
int main()
{
int arr[8], i, j,t;
for (i = 0; i < 8; i++)//输入八个数
scanf("%d", &arr[i]);
for (j = 0; j < 8;j++)
{
for (i = 0; i < 8-j; i++)
if (arr[i] < arr[i + 1])
{
t=arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = t;
}
}
return 0;
}
第四步:打印数组
#include<stdio.h>
int main()
{
int arr[8], i, j,t;
for (i = 0; i < 8; i++)//输入八个数
scanf("%d", &arr[i]);
for (j = 0; j < 8;j++)
{
for (i = 0; i < 8-j; i++)
if (arr[i] < arr[i + 1])
{
t=arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = t;
}
}
for (i = 0; i < 8; i++)
printf("%d ", arr[i]);
return 0;
}
第五步:输入八个数查看结果
输入:5 6 7 1 2 3 4 9