/*
*檔名稱:2-3-1.cpp
*作 者: 畢夢楠
*完成日期:2023年9月18日
*版 本 號:v1.0
* *問題描述:排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適
用的演算法,也一直作為演算法研究的熱點。本專案提供兩種排序演算法,復
雜度為o(n 2)的選擇排序selectsort,和複雜度為o(nlogn)的快速排序
quicksort,在main函式中加入了對執行時間的統計。
*輸入描述:大資料檔案
*程式輸出:執行時間
*/
程式一**
#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(n
logn
)n*log(n),顯然第乙個複雜度是指數型增長,第二個則是線性增長,故執行時間第二個較第乙個快。
知識點總結:
這個程式主要考察了我們對程式時間複雜度的理解,我們也感受了兩種演算法在執行時間上的差異。
學習心得:
通過這兩個程式,我體驗了複雜度的問題。明白了程式執行時間上的差異。
第2周專案3 體驗複雜度(1)
問題 檔名稱 複雜度.cpp 作 者 王聰 完成日期 2015年9月10日 版 本 號 v1.0 問題描述 排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適 用的演算法,也一直作為演算法研究的熱點。本專案提供兩種排序演算法,復 雜度為o n 2 的選擇排序selectsort,和複雜度為...
第2周專案3 體驗複雜度(1)
問題 檔名稱 複雜度.cpp 作 者 王婧 完成日期 2016年9月8日 版 本 號 v1.0 問題描述 排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適 用的演算法,也一直作為演算法研究的熱點。本專案提供兩種排序演算法,復 雜度為o n 2 的選擇排序selectsort,和複雜度為o...
第2周專案3 體驗複雜度(1)
問題 檔名稱 複雜度.cpp 作 者 陳光輝 完成日期 2016年9月8日 版 本 號 v1.0 問題描述 排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適 用的演算法,也一直作為演算法研究的熱點。本專案提供兩種排序演算法,復 雜度為o n 2 的選擇排序selectsort,和複雜度為...