1. 程式人生 > >常見的排序問題(一)

常見的排序問題(一)

#include <stdio.h>
void bublesort (int a[],unsigned int n)
{ bool flag=false;// 通過加標誌位減少在資料結構較好時的可能的執行次數   
    int i=0,j=0;
    int temp=0;//接下來的巢狀的for迴圈完成了氣泡排序的核心工作
    for (;i<n;i++)
      {  flag=false; 
         for (j=1;j<n-1;j++)
          {
            if (a[j]<a[j-1])
              {  flag=true;
                temp=a[j];
                a[j]=a[j-1];
                a[j-1]=temp;               
              }
           }
           if (flag==false)
           {
           break;
  }
      }
}
//接下來呼叫後檢驗一下這個函式
 int main ()
{
   int test[]= {14,67,35,98,75,92,65,} ;                                               
   unsigned int n;
   n = sizeof (test)/ sizeof(int);
   int i=0;
   bublesort (test,n);
    printf ("After buble sort:\n");
    i=0;
     while (i<n)
           printf ("%3d",test[i++]  );
           return 0;