« 於: 八月 11, 2015, 08:30:39 am »
作業三:寫一個C程式 ex3.c
用亂數產生100, 1000 和10000個數字
計算bubble sort比較swap的次數
#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;
}