#include stdio.h(5)

#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
",array[k]);
   }
   
















  return 0;
}
原文地址:https://www.cnblogs.com/lishch/p/9329826.html