1.概念
当创建一个数组,想要将数组里的元素按从小到大进行排序,我们可以先取出数组的第一位元素,是这第一位从第一位到最后一位进行比较,如果比到比这位元素大的元素那么就取这位大的元素继续进行比较,被取的元素称作“冒泡”,通过这样的方法每次比较虽然不能保证每个数都按从小到大排序好,但能使数组中最大的数排在最后,再缩短数组进行这样排序能使数组每个数都能按从小到大进行排序。
2.用图表理解
比如像最简单的一个这样的数列我们可以先将第一个元素取出一个一个地进行比较:
换位代码实现大家应该都知道是:
for (int j = 0;j < c;j++)
{
if (crr[j + 1] < crr[j])
{
int temp = crr[j];
crr[j] = crr[j + 1];
crr[j + 1] = temp;
}
}
其中crr是我创建的数组temp是我创建的元素换位的媒介
要想实现所有元素就需要再套一个for循环可以让数组里每一位都能冒泡以实现数组的排序:
for (int i = 0; i < a+b-1; i++)
{
for (int j = 0; j <a+b - i-1; j++)
{
if (c[j] > c[j + 1])
{
temp = c[j];
c[j] = c[j + 1];
c[j + 1] = temp;
}
}
}
“其中a+b=c”
通过每次比较缩短数组可以让数组从小到大排序。
3.题目
创建一个乱序数组将此数组进行排序
4.答案&&数组排序模板
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a, b, temp;
int c[10] = {0};
for (int i = 0;i < 10;i++) {
scanf("%d", &c[i]);
}
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9 - i; j++)
{
if (c[j] > c[j + 1])
{
temp = c[j];
c[j] = c[j + 1];
c[j + 1] = temp;
}
}
}
for (int i = 0;i < 10;i++) {
printf("%d ", c[i]);
}
return 0;
}