冒泡排序

冒泡排序就是相邻两数进行比较,如果前边的数比后边的数大就做交换,知道交换到后边的两个数,最后一个数便是最大值,就如同冒泡一般;

第一次排序,比较n-1次;确定一个数

第二次排序,比较n-2次;确定2个数

……

第n-1次排序,比较1次;确定n-1个数

第n 次排序, 比较0次;确定n个数;(所以只需要排序n-1次,最后一次不做比较已经确定好了)

void maopao(int *a, int n)

{

  for(int i = 0; i < n-1; i++)     //排序次数1~n-1次;

  {

    for(int j = 0; j < n-i-1; j++)  //比较次数1~n-i次;

    {

      if(a[j] > a[j+1])     在未确认好的数列中两两作比较;前者比后者大,便做交换

      {

        a[j] = a[j] ^ a[j+1];

        a[j+1] = a[j] ^ a[j+1];

        a[j]     = a[j] ^ a[j+1];

      }

    }

  }

}

posted @ 2021-11-21 20:22  代码有余  阅读(128)  评论(0)    收藏  举报