第二週專案3 體驗複雜度 兩種排序演算法的執行時間

2021-07-22 13:19:30 字數 1625 閱讀 3939

問題及**:

/*

*煙台大學計控學院

*作 者:朱建豪

*完成日期:2023年9月8日

*問題描述:排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適用的演算法,也一直作為演算法研究的熱點。本專案提供兩種排序演算法,複雜度為o(n 2 )的選擇排序selectsort,和複雜度為o(nlogn) 的快速排序quicksort,在main函式中加入了對執行時間的統計。

*輸 入:從檔案中讀取大量的資料

*輸 出:資料執行時間

*/(1)複雜度是o(n 2 )的選擇排序程式

#include #include #include #define maxnum 100000

void selectsort(int a, int n)

if(k != j)

}}int main()

while(fscanf(fp, "%d", &x[n])!=eof)

n++;

printf("資料量:%d, 開始排序....", n);

t1=time(0);

selectsort(x, n);

t2=time(0);

printf("用時 %d 秒!", (int)(t2-t1));

fclose(fp);

return 0;

}執行結果:

(2)複雜度為o(nlogn) 的快速排序

#include #include #include #define maxnum 100000

void quicksort(int data,int first,int last)

}data[first]=data[i];

data[i]=base;

quicksort(data,first,i-1);

quicksort(data,i+1,last);

}int main()

while(fscanf(fp, "%d", &x[n])!=eof)

n++;

printf("資料量:%d, 開始排序....", n);

t1=time(0);

quicksort(x, 0, n-1);

t2=time(0);

printf("用時 %d 秒!", (int)(t2-t1));

fclose(fp);

return 0;

}執行結果:

知識點總結:

1.o(1)

學習心得:

通過這兩種排序演算法的執行時間的比較更加具體的知道了不同數量級執行程式時的時間複雜度,更加容易理解與記牢。但我總覺得這種直接複製老師**的方式不能加深自己對程式的理解,現在只是把老師的程式複製執行一遍就ok了,感覺練習的只是對寫部落格的熟悉度而不是對程式的而加深了解。

第二週專案3 體驗複雜度 兩種排序演算法的執行時間

問題及 煙台大學計控學院 作 者 張冰 完成日期 2016年9月7日 問題描述 排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適用的演算法,也一直作為演算法研究的熱點。本專案提供兩種排序演算法,複雜度為o n 2 的選擇排序selectsort,和複雜度為o nlogn 的快速排序qui...

第二週專案3 體驗複雜度 兩種排序演算法的執行時間

問題及 檔名稱 sss.cpp 作 者 車佳穎 完成日期 2016年9月7日 問題描述 排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適用的演算法,也一直作為演算法研究的熱點。本專案提供兩種排序演算法,複雜度為o n 2 的選擇排序selectsort,和複雜度為o nlogn 的快速排...

第二週 專案3 體驗複雜度 兩種排序演算法的執行時間

問題及 煙台大學計控學院 作 者 孫啟先 完成日期 2016年9月8日 問題描述 排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適用的演算法,也一直作為演算法研究的熱點。本專案提供兩種排序演算法,複雜度為o n 2 的選擇排序selectsort,和複雜度為o nlogn 的快速排序qu...