第二週專案3體驗複雜度

2021-08-08 05:08:42 字數 1263 閱讀 3117

/* 

*檔名稱:test.cpp

*完成日期:2023年09月13日

*版本號:v1.0

* *問題描述:排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適用的演算法,也一直作為演算法研究的熱點。

本專案提供兩種排序演算法,複雜度為o(n 2 )的選擇排序selectsort,和複雜度為o(nlogn) 的快速排序quicksort,在main

函式中加入了對執行時間的統計。

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

程式輸出: 資料量及用時

*/ //專案3的程式1——複雜度是o(n 2 )的選擇排序程式

#include #include #include #define maxnum 100000

void selectsort(int a, int n)

if(k != j)

}}int main()

執行結果

問題及**

//專案3的程式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的值。

學習心得

不同的演算法分別適用於不同的情況,在同一種情況下,不同的演算法會有相同的結果和不同的效率。

學習總結:不同的演算法分別適用於不同的情況,在同一種情況下,不同的演算法會有相同的結果和不同的效率。

(第二週專案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 體驗複雜度

檔名稱 專案3體驗複雜度.cpp 作 者 林穎 完成日期 2015年9月11日 問題描述 排序是電腦科學中的乙個基本問題,產生了很多種適合不同情況下適用的演算法,也一直作為演算法研究的熱點。本專案提供兩種排序演算法,複雜度為o n2 的選擇排序selectsort,和複雜度為o nlogn 的快速排...