第二週專案3(1)體驗複雜度

2021-07-05 09:02:18 字數 1326 閱讀 7523

/* 

*檔名稱:體驗複雜度.cpp

*作 者:彭子竹

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

*版 本 號:v1.0

* *問題描述:排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適

用的演算法,也一直作為演算法研究的熱點。本專案提供兩種排序演算法,復

雜度為o(n 2)的選擇排序selectsort,和複雜度為o(nlogn)的快速排序

quicksort,在main函式中加入了對執行時間的統計。

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

*程式輸出:它的執行時間

*/

第一種排序演算法

#include #include #include #define maxnum 100000   

void selectsort(int a, int n)

if(k != j)

} }

int main()

執行結果

第二種排序演算法

#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

執行結果

比較兩個程式的執行時間,第二個程式是線性增長瞬間完成,而第乙個程式是指數增長則需要一段時間。從這兩個程式複雜度來看,第乙個複雜度是n的平方,第二個是o(

nlog

n)n*log(n),所以第二個程式比第乙個程式快。

知識點總結:

這個程式讓我們對程式時間複雜度的有一定的理解,不同的複雜程度執行時間不同。

學習心得:

通過程式的執行直觀的理解了複雜度對程式執行的時間的影響,減少程式複雜程度是有利於執行時間減少的。

(第二週專案3)體驗複雜度

1 兩種排序演算法的執行時間 提供兩種排序演算法,複雜度為o n 2 的選擇排序selectsort,和複雜度為o nlogn 的快速排序quicksort,在main函式中加入了對執行時間的統計。利用乙個將近10萬條資料的檔案作為輸入資料執行程式,感受兩種演算法在執行時間上的差異。執行中需要的資料...

第二週專案(4) 體驗複雜度

問題及 慢速排序 煙台大學電腦科學與技術學院 檔名稱 y.cpp 作 者 楊甯 完成日期 2015年9月11日 問題描述 兩種排序演算法的執行時間 輸入描述 無 程式輸出 資料量及排序執行過程 include include include define maxnum 100000 void sel...

第二週專案3(2)體驗複雜度

檔名稱 複雜度2漢諾塔.cpp 作 者 彭子竹 完成日期 2015年9月18日 版 本 號 v1.0 問題描述 有乙個印度的古老傳說 在世界中心貝拿勒斯 在印度北部 的聖廟裡,一塊黃銅板上插著三根 寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的64 片金片,這就是...