第二週專案3 體驗複雜度

2021-07-22 10:46:19 字數 1464 閱讀 5375

/*    

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

*    作        者:林穎  

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

*       

*        

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

*                       也一直作為演算法研究的熱點。本專案提供兩種排序演算法,複雜度為o(n2)的選擇排序selectsort,  

*                       和複雜度為o(nlogn)的快速排序quicksort,在main函式中加入了對執行時間的統計。    

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

*    程式輸出:需要時及時的完整的進行 呼叫。   

#include

#include

#include

#define maxnum 100000    

void selectsort(int a, int n)    

if(k != j)    

}    

}    

int main()    

執行結果:

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

#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執行結果:

知識點總結:經過這一次的程式執行可知,複雜度為o(n^2)的selectsort程式執行實踐遠遠大於複雜度為o(nlogn)的程式quicksort,在資料很大的情況下,符合n^2函式的值大於nlogn的值。所以,在大量資料的儲存中,進行o(nlogn)的資料儲存比較好一點。

學習心得:

1.在做實踐專案的時候一定要細心特別注意資料夾的名稱,注意要把該檔案放在與原始檔相同的資料夾中。

2.了解複雜度的概念。

3.了解各個演算法的複雜度,從而讓一些演算法的執行和選擇更加方便。

4.在程式設計序之前,找到乙個好的演算法可以節省很多的實行時間以及儲存空間。

(第二週專案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...

第二週專案3 體驗複雜度

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