第2周專案3 體驗複雜度(1)兩種排序演算法執行時間

2021-07-22 13:18:27 字數 1552 閱讀 8057

問題及**:

(1)選擇排序:

/*  

* 檔名稱: 1.cpp

* 作 者:路亞麗

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

* 版 本 號:v1.0

* * 問題描述: 本專案提供兩種排序演算法,複雜度為o(n2)的選擇排序selectsort,和複雜度為o(nlogn)的快速排序quicksort.

在main函式中加入了對執行時間的統計。利用乙個將近10萬條資料的檔案作為輸入資料執行程式,感受兩種演算法在執行時間上的差異 。

* 輸入描述:乙個將近10萬條資料的檔案

* 程式輸出: 資料量和排序時間

*/

#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)快速排序:

#include #include #include #define maxnum 100000

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

{ int i, j, t, base;

if (first>last)

return;

base=data[first];

i=first;

j=last;

while(i!=j)

{while(data[j]>=base && i

執行結果:

通過對比可見快速選擇的排序方法由於複雜度低而執行時間段。

知識點總結:演算法的複雜度跟程式執行時間有一定關係,複雜度高的演算法程式執行所需時間長。

學習心得:通過對比了解了複雜度對執行時間的影響,從而保證以後能根據實際情況選擇合適複雜度的演算法進行程式任務。

第2周專案3 體驗複雜度(1)

問題 檔名稱 複雜度.cpp 作 者 王聰 完成日期 2015年9月10日 版 本 號 v1.0 問題描述 排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適 用的演算法,也一直作為演算法研究的熱點。本專案提供兩種排序演算法,復 雜度為o n 2 的選擇排序selectsort,和複雜度為...

第2周 專案3 體驗複雜度(1)

檔名稱 2 3 1.cpp 作 者 畢夢楠 完成日期 2015年9月18日 版 本 號 v1.0 問題描述 排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適 用的演算法,也一直作為演算法研究的熱點。本專案提供兩種排序演算法,復 雜度為o n 2 的選擇排序selectsort,和複雜度為...

第2周專案3 體驗複雜度(1)

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