冒泡排序

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

int n,set[110];

void Bu_sort()

{

     int swap;

     for(int i=1;i<=n;i++)//进行n趟排序

     {

          swap=0;

          for(int j=1;j<=n-i;j++)//每趟交换n-i次

          {

               if(set[j]>set[j+1])

               {

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

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

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

                   swap=1;

               }

          }

          if(swap==0)//如果某一趟中不存在交换了,则已经排好序了,直接跳出。

             break;

     }

}

int main()

{

    while(scanf("%d",&n),n)

    {

         memset(set,0,sizeof(set));

         for(int i=1;i<=n;i++)

         {

             scanf("%d",&set[i]);

         }

         Bu_sort();

         for(int i=1;i<=n;i++)

         {

             printf("%d ",set[i]);

         }

         printf("\n");

    }

    system("pause");

    return 0;

}

你可能感兴趣的:(冒泡排序)