一、 實驗目的:
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.健壯性...