資料結構 排序及時間複雜度

2021-09-02 01:29:56 字數 1512 閱讀 1741

一、 實驗目的:

1. 掌握各種排序的基本思想。 .

2. 掌握各種排序方法的演算法實現。

3. 掌握各種排序方法的優劣及花費時間的計算。

4. 掌握各種排序方法所適應的不同場合。

二、 實驗內容:

1. 隨機函式產生 10000 個隨機數, 用直接插入、 二分插入、 希爾等三種排序方法排序,

並統計每一種排序所花費的時間。

三、 實驗要求:

根據實驗內容程式設計, 上機除錯、 得出正確的執行程式。

寫出實驗報告(包括源程式和執行結果) -電子檔週日晚上十點前交給課代表。

樣例生成器:

#include

#include

using namespace std;

intrandom

(int start,

int end)

intmain()

fprintf

(fp ,

"\n");

fclose

(fp)

;return0;

}

三種排序用函式封裝好了

#include

#include

using namespace std;

const

int maxn =

1e5+50;

int s[maxn]

;void

insertsort()

}void

bininsertsort()

for( j = i -

1; j >= high +

1; j --

) s[j +1]

= s[j]

; s[high +1]

= s[0]

;}}void

shellinsert

(int dk )}}

intmain()

start =

clock()

;//insertsort() ;

//bininsertsort() ;

shellinsert(1

);finish =

clock()

;for

(int i =

1; i <=

10000

; i ++

)puts(""

);double tot_time =

double

(finish -start)

/ clocks_per_sec;

fprintf

(fstream ,

"10000個元素shell排序的時間為:%.3f\n"

,tot_time )

;fclose

(fp)

;fclose

(fstream)

;return0;

}

但是我的結果二分插入排序竟然比插入排序的複雜度大,一定是資料的問題

資料結構 時間複雜度 空間複雜度

1.演算法效率 演算法效率可以用來衡量乙個演算法的好壞 演算法效率分析分為兩種 第一種是時間效率,第二種是空間效率.時間效率被稱為時間複雜度,空間效率被稱為空間複雜度.時間複雜度主要衡量的是乙個演算法的執行速度,而空間複雜度主要衡量乙個演算法所需要的額外空間,在計算機發展的早期,計算機的儲存容量很小...

資料結構時間複雜度

如何衡量乙個演算法的複雜度?演算法的時間複雜度和空間複雜度統稱為演算法的複雜度 void test int n for int k 0 k 2 n k icount intcount 10 while count icount 這個函式執行次數為f n n n 2 n 10 時間複雜度實際就是乙個函...

資料結構 時間複雜度

一 演算法 是解決特定問題求解不走的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。1.正確性 演算法的正確性是指演算法至少應該具有輸入 輸出和加工處理無歧義性 能正確反映問題的需求 能夠得島問題的正確答案。2.可讀性 演算法設計的另一目的是為了方便閱讀 理解和交流。3.健壯性...