#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; }