999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

排序算法時間復雜度比較試驗設計

2019-09-07 07:13:30任洛漪電子科技大學成都學院計算機系
數(shù)碼世界 2019年9期
關鍵詞:排序

任洛漪 電子科技大學成都學院 計算機系

1 引言

各種排序算法時間復雜度比較部分是《數(shù)據(jù)結(jié)構(gòu)》課程的重難點。如果光講理論,學生理解比較膚淺,因此我們嘗試在教學中用實驗的方法讓學生切身感受到各種排序算法的區(qū)別。

2 時間測量方法的準備

首先需要找到精確的時間測量方法。

常規(guī)的計時用是頭文件中的clock()函數(shù),精度為1ms,但對于插入排序和冒泡排序?qū)?000 個正序序列排序的情況,耗時只有幾十微秒,故需要設計精確到微秒的測量方式。

代碼如下

double run_time;

_LARGE_INTEGER time_start;

_LARGE_INTEGER time_over;

double dpFreq;

_LARGE_INTEGER f;

void StartTimer() {

QueryPerformanceCounter(&f);

dpFreq = (double)f.QuadPart;

QueryPerformanceCounter(&time_start);}

void EndTimer() {

QueryPerformanceCounter(&time_over);

run_time = 1000000 * (time_over.QuadPart - time_start.QuadPart) / dpFreq;}

實際使用中,在做排序之前調(diào)用StartTimer()開始計時,排序之后立刻調(diào)用EndTimer()結(jié)束計時。時間間隔記錄到全局變量run_timer 中。

3 測試數(shù)據(jù)的準備

由于初始記錄的關鍵字的分布情況不同,排序算法的耗時也不同。故需要準備以下三種序列。

a)、正序初始序列,存放關鍵字遞增的數(shù)據(jù)序列。

b)、逆序初始序列,存放關鍵字遞減的數(shù)據(jù)序列。注意,由于排序基本都是原地重排,為了避免上一次排序的干擾,每次對逆序序列排序之前都必須重新生成逆序序列。

c)、隨機數(shù)初始序列,存放關鍵字為隨機數(shù)的數(shù)據(jù)序列。隨機序列進行比較之前需要生成一個隨機序列并將其復制多份,每個排序方式排一份數(shù)據(jù),以便讓每種排序方法都針對相同序列并互不干擾。

4 實驗設計

基于以問題為導向,試驗將回答以下問題:

(1)對于正序序列的表,最省時間的排序方式為哪種算法?最費時間的又是哪種算法?

為此我們設計了了下列實驗,首先對正序序列賦值,然后使用直接插入排序、冒泡排序、簡單選擇排序、快速排序、堆排序、兩路歸并排序分別對該序列進行排序。并分別計時,生成結(jié)果如下:

圖1 正序序列情況下各種排序算法時間復雜度比較

可見,冒泡排序只需0.026 毫秒,在六種排序算法中耗時最少,因為正序情況下,它的時間復雜度為O(n)。

同時可見,與冒泡法時間復雜度相同的直接插入法,耗時更大。因為雖然執(zhí)行次數(shù)相同,但每次循環(huán)中,直接插入法的還需執(zhí)行移動,而同等情況下冒泡算法幾乎沒有移動次數(shù),故速度更快。

并且對于正序序列,基準為第一個元素的快速排序并不占優(yōu)勢,它的耗時僅次于簡單選擇排序,因為這種情況下,快速排序?qū)亩媾判驑渫嘶癁橐活w單枝樹,時間復雜度為O(n2)。

對于正序序列,最費時的是簡單選擇,因為同樣的實際復雜度O(n2)下,它的比較次數(shù)比快速排序要多。

(2)對于逆序序列,哪種算法最耗時?哪種最省時?實驗結(jié)果為

圖2 逆序序列情況下各種排序算法時間復雜度比較

可見,對于1000 個數(shù)的逆序序列,堆排序和歸并排序時間性能最好,時間復雜度為O(nlog2n)。直接插入,冒泡,簡單選擇和快速排序的耗時較長,時間復雜度都為O(n2)。

在后四個算法中,最快的是選擇排序,因其移動的次數(shù)最少。快速排序在這種情況下比較和移動的次數(shù)類似于選擇排序,但由于使用遞歸需要系統(tǒng)分配時間調(diào)用遞歸棧,所以耗時比選擇排序略高。冒泡和插入由于在逆序情況下移動和比較的次數(shù)都達到了最大值,所以排序性能不好。

(3)對于隨機序列,哪種算法最耗時?哪種最省時?實驗結(jié)果為

圖3 隨機序列情況下各種排序算法時間復雜度比較

可見,對于1000 個數(shù)以內(nèi)的隨機序列,快速排序、堆排序和歸并排序時間性能最好。因為這種情況下,時間復雜度為O(nlog2n)。直接插入,冒泡,簡單選擇的耗時都較長,因為這種情況下時間復雜度都為O(n2)。

5 結(jié)論

通過實驗,學生對下圖各種排序的時間性能有了更直觀和深入的理解。教學收到了較好的效果。

猜你喜歡
排序
排排序
排序不等式
作者簡介
名家名作(2021年9期)2021-10-08 01:31:36
作者簡介
名家名作(2021年4期)2021-05-12 09:40:02
作者簡介(按文章先后排序)
名家名作(2021年3期)2021-04-07 06:42:16
恐怖排序
律句填空排序題的備考策略
節(jié)日排序
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
作者簡介(按文章先后排序)
名家名作(2017年2期)2017-08-30 01:34:24
主站蜘蛛池模板: av在线无码浏览| 黄色a一级视频| 精品中文字幕一区在线| 欧美另类精品一区二区三区| 亚洲三级网站| 99视频在线免费观看| 日韩视频福利| 久久一本精品久久久ー99| 无码精品福利一区二区三区| 亚洲人人视频| 国产精品中文免费福利| 麻豆国产在线不卡一区二区| 免费一级α片在线观看| 香蕉色综合| 国产国产人成免费视频77777| 99久久99视频| 久久国产精品麻豆系列| 香蕉综合在线视频91| 无码久看视频| 亚洲成a人片| 99视频全部免费| 亚洲国产欧美目韩成人综合| 亚洲一区二区三区中文字幕5566| 国产人人干| 国产小视频在线高清播放| 久久公开视频| 免费精品一区二区h| 国产成人凹凸视频在线| 嫩草在线视频| 全免费a级毛片免费看不卡| 国产欧美精品一区二区| 欧美成人怡春院在线激情| 亚洲一区二区在线无码| 日韩精品毛片人妻AV不卡| 日韩亚洲综合在线| 精品国产网| 日韩区欧美区| 玩两个丰满老熟女久久网| 国产精品一线天| 亚洲日韩精品欧美中文字幕 | 国产成人三级| 国产极品美女在线播放| 国产麻豆福利av在线播放| 99爱视频精品免视看| 国产玖玖视频| 九色综合伊人久久富二代| 2021亚洲精品不卡a| 久久性妇女精品免费| 国产成人盗摄精品| 亚国产欧美在线人成| 欧美日韩免费观看| 国产在线视频福利资源站| 国产又爽又黄无遮挡免费观看| 黄色福利在线| 亚洲欧美色中文字幕| 国产亚洲精品资源在线26u| 波多野结衣一区二区三视频 | 亚洲视频无码| 亚洲一区第一页| 成人福利视频网| 日韩在线播放中文字幕| 激情综合图区| 日韩人妻精品一区| 国产精品女熟高潮视频| 国产无人区一区二区三区| 天天综合网在线| 免费看美女毛片| 亚洲成人免费在线| 亚洲欧美国产五月天综合| 日韩欧美国产综合| 国产又大又粗又猛又爽的视频| 国产一国产一有一级毛片视频| 免费国产一级 片内射老| 国产美女人喷水在线观看| 国产亚洲欧美在线专区| 久久久受www免费人成| 米奇精品一区二区三区| 老汉色老汉首页a亚洲| 无码aaa视频| 亚洲一欧洲中文字幕在线| 国产成人一区在线播放| 2018日日摸夜夜添狠狠躁|