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

2021-07-22 13:19:30 字數 1195 閱讀 2450

/* 

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

*作 者:黃玉嬌

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

*版 本 號: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的平方比nlogn變化速度緩慢的多。

知識點總結:

不同函式作為時間複雜度時變化速度不同。

學習心得:

通過除錯程式,對時間複雜度有了較為直觀的理解。

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

問題及 檔名稱 no2.cpp 完成日期 2015年9月13日 版本號 v1.0 問題描述 本專案提供兩種排序演算法,複雜度為o n2 的選擇排序selectsort,和複雜度為o nlogn 的快速排序quicksort,在main函式中加入了 對執行時間的統計。輸入描述 numbers.txt ...

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

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

第二週 專案3 體驗複雜度

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 sel...