Artificial Intelligence Programming Lab(AIPLab) 討論區

Please login or register.

請輸入帳號, 密碼以及預計登入時間

新聞:

[開學]106學年第1學期的課程看版開張了 歡迎同學問問題-20170917

作者 主題: Ex-C3-排序複雜度-20150811  (閱讀 2159 次)

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1839
    • 檢視個人資料
Ex-C3-排序複雜度-20150811
« 於: 八月 11, 2015, 08:30:39 am »
作業三:寫一個C程式 ex3.c
用亂數產生100, 1000 和10000個數字
計算bubble sort比較swap的次數

程式碼: [Select]
#include <stdio.h> //標準輸出入函數的標頭檔
#include <stdlib.h>
 
int main(int argc, char *argv[])//主函數入口
{//函數的程式碼寫在{}
     int i, N = atoi(argv[1]);
     int *iData = malloc(sizeof(int)*N);
     int cc;
     srand( (unsigned) time( NULL ) );//asrand()是產生亂數的種子
 
     for (i = 0; i < N; i++)
         iData[i] = rand(); //rand()是產生亂數的函數
 
     cc = BubbleSort(iData, N);
     for (i = 0; i < N; i++)
         printf("%d\n", iData[i]);
     printf("Swap count = %d\n", cc);
     return 0;
}
int BubbleSort(int *data, int length)
{
    int i,j, tt;
    int swapCount = 0;
    for (i=length-1; i>0; i--)
    {
        for (j=1; j <=i; j++)
        {
            if (data[j-1] > data[j])
            {
                 tt = data[j-1];
                 data[j-1] = data[j];
                 data[j] = tt;
                 swapCount++;
            }
        }
    }
    return swapCount;
}
已記錄
 

SimplePortal Classic 2.0.5