#include <stdio.h>
int main()
{
//1、数组的排序-冒泡排序
/*
1、规则:相邻的两个数据进行比较
2、如果有N个数据,需要选择N-1次参照物来比较,
因为最后一次的数据,都被别人比过了
3、第一个选择比较参考数据的时候,会和后面(N-1)个数据都比较
第2个数据,会比较N-2次
第3个数据,会比较N-3次
4、冒泡排序关键点
4.1有两个for循环,外层循环N-1次,内层循环N-i-1次
4.2有1个if语句,用来判断大小是否需要交换的,
根据当前列和后一列数据进行比较,所以使用内层变量
4.3有一个交换的代码块,
交换的代码块需要借助一个临时变量
*/
int array[5] = {5,4,3,2,1};
//选择比较参考数据的
for(int i=0;i<5-1;i++)//N-1
{
//当i=0的时候 a[i] = 5 4次=N-i-1
//当i=1的时候 a[i] = 4 3次=N-i-1
//当i=2的时候 a[i] = 3 2次=N-i-1
//内层循环,1个参考数据,会比较几次
for(int j=0;j<5-i-1;j++)//N-i-1
{
//比较的代码
//因为比较的时候是,
//当前一列的数据和后一列的数据进行比较,
//所以在选择的使用内层循环变量而不是外层变量
if(array[j] > array[j+1])//判断大小
{
//交换的代码
int temp = 0;
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
for(int k=0;k<5;k++)
{
printf("%d\n",array[k]);
}
return 0;
}